猜数游戏(1)

偏执的太偏执、 2022-01-09 10:43 342阅读 0赞

猜数游戏

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

Alice 和 Bob 正在玩一个猜数游戏,游戏规则如下。

有且仅有一个未知的整数需要Alice去猜测,Bob事先已经知道了这个数。

在游戏中 Bob 总共提供给 Alice n 条线索,而Alice只有一次猜测机会。

每条线索由 L 和 R 两个整数组成,表示要猜测的数大于等于L,并且小于等于R。

Alice是足够聪明的,不过她希望你能告诉她,一次猜对的概率是多少。

(数据保证Bob给Alice提供的线索均是正确的)

Input

第一行输入一个正整数 T 表示数据的组数。(1 <= T <= 100)

每组开始输入一个正整数 n。(1 <= n <= 100)

接下来 n 行,每行输入两个整数 L 和 R。 (-100 <= L <= R <= 100)

Output

输出共T行,第 i 行表示第 i 组测试数据的答案。

答案用分数的形式(A/B)进行表示,注意不要输出多余的空格。

Sample Input

  1. 3
  2. 1
  3. -100 100
  4. 2
  5. 3 4
  6. 4 5
  7. 2
  8. 3 6
  9. 4 7

Sample Output

  1. 1/201
  2. 1/1
  3. 1/3

Hint

Source

lxw

题目提交链接

方法一:

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int n=0;
  4. int minnum(int a[]);
  5. int maxnum(int a[]);
  6. int main()
  7. {
  8. int T,d1[1000],d2[1000];
  9. scanf("%d",&T);
  10. for(int j=0; j<T; j++)
  11. {
  12. scanf("%d",&n);
  13. for(int i=0; i<n; i++)
  14. {
  15. scanf("%d",&d1[i]);
  16. scanf("%d",&d2[i]);
  17. }
  18. printf("1/%d\n",(minnum(d2)-maxnum(d1)+1));
  19. }
  20. return 0;
  21. }
  22. int minnum(int a[])
  23. {
  24. int min=a[0],k=0;
  25. for(int i=1; i<n; i++)
  26. {
  27. if(a[i]<min)
  28. min =a[i];
  29. }
  30. return min;
  31. }
  32. int maxnum(int a[])
  33. {
  34. int max=a[0],k=0;
  35. for(int i=1; i<n; i++)
  36. {
  37. if(a[i]>max)
  38. max =a[i];
  39. }
  40. return max;
  41. }

方法二:利用三维数组

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5. int num[100][100][2],result[100];
  6. int max,min,firstfind=0;
  7. int i,j,k,n,m;
  8. scanf("%d",&n);
  9. for(i=0; i<n; i++)
  10. {
  11. scanf("%d",&m);
  12. firstfind=0;
  13. for(j=0; j<m; j++)
  14. {
  15. scanf("%d %d",&num[i][j][0],&num[i][j][1]);
  16. if(firstfind==0)
  17. {
  18. min=num[i][j][0];
  19. max=num[i][j][1];
  20. }
  21. if(min<num[i][j][0])
  22. {
  23. min=num[i][j][0];
  24. }
  25. if(max>num[i][j][1])
  26. {
  27. max=num[i][j][1];
  28. }
  29. firstfind=1;
  30. }
  31. result[i]=max-min+1;
  32. }
  33. for(i=0; i<n; i++)
  34. {
  35. printf("1/%d\n",result[i]);
  36. }
  37. return 0;
  38. }

补充知识:

  1. //三维数组的初始化
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. int main()
  5. {
  6. int a[3][2][4] =
  7. {
  8. {
  9. {1,1,2,1}, {1,1,5,1}
  10. },
  11. {
  12. {1,1,3,1}, {1,1,6,1}
  13. },
  14. {
  15. {1,1,4,1}, {1,1,7,1}
  16. }
  17. };
  18. printf("%d ",a[0][1][2]);//a[0][1][2] = 5;
  19. return 0;
  20. }
  21. //1. 用魔方理解,z 就相当于深度或者层数
  22. //2. 树的概念理解

发表评论

表情:
评论列表 (有 0 条评论,342人围观)

还没有评论,来说两句吧...

相关阅读

    相关 玩家游戏(v1.0)

    题目要求: 1. 系统随机生成一个0~99之间的整数; 2. 玩家输入一整数, 若和系统随机生成的数匹配, 则可随机抽取一二三等奖(由系统随即决定); 3. 若输入的数和

    相关 游戏

    一个小小的程序,找点乐趣。。哈哈 目前我觉得能最快的找出数字的方法是二分法。。。 代码: \include <stdio.h> \include <stdlib.h>

    相关 【C语言】游戏

    系统随机产生四个不同的有序的数字 (从小到大排列),等待用户输入猜测的结果, 用A来表示数字正确且位置正确的个数 ,用B来表示数字正确但位置不正确的个数,给八次机会,猜中则游戏

    相关 游戏

    猜数小游戏: 1. 从键盘录入你猜的数; 2. 比较环节,如果猜大了,提示猜大了重新猜测;如果猜小了,提示猜小了重新猜测;如果相等,提醒猜中了。 3. 循环环节,