码迷,mamicode.com
首页 > 其他好文 > 详细

codeforces679A_Bear and Prime 100 交互题

时间:2018-12-09 10:38:12      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:class   避免   原来   init   解释   多次   problem   bool   ble   

传送门

第一道交互题

 

题意

  电脑事先想好了一个数【2100】

  你会每次问电脑一个数是否是它想的那个数的因数

  电脑会告诉你yes或no
  
  至多询问20次
  最后要输出它想的数是质数还是合数

 

思路

  枚举<50的质数和4,925,49即可判断

  4925,49单独看作质数是这样方便判断2^2,3^2,...,9^2

 

 解释

  在使用多个输出函数连续进行多次输出时,有可能发现输出错误。

  因为下一个数据再上一个数据还没输出完毕,还在输出缓冲区中时,下一个printf就把另一个数据加入输出缓冲区,

  结果冲掉了原来的数据,出现输出错误。

  在 printf();后加上fflush(stdout);强制马上输出,避免错误。

 

fflush只能加于你的输出后 电脑的反馈前

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 char fb[5];
 5 int init[40] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 4, 9, 25, 49};
 6 
 7 int main() {
 8     int cnt = 0; bool flag = 1;
 9     for (int i = 0; i <= 18; ++i){
10         printf("%d\n", init[i]);
11         fflush(stdout);
12         scanf("%s", fb);
13         if (fb[0] == y) ++cnt;
14         if (cnt >= 2) {
15             flag = 0; break;
16         }
17     }
18     flag ? puts("prime") : puts("composite");
19     return 0;
20 }

 

codeforces679A_Bear and Prime 100 交互题

标签:class   避免   原来   init   解释   多次   problem   bool   ble   

原文地址:https://www.cnblogs.com/Fo0o0ol/p/10090005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!