标签:class 避免 原来 init 解释 多次 problem bool ble
第一道交互题
题意:
电脑事先想好了一个数【2,100】 你会每次问电脑一个数是否是它想的那个数的因数 电脑会告诉你yes或no
至多询问20次
最后要输出它想的数是质数还是合数
思路:
枚举<50的质数和4,9,25,49即可判断 4,9, 25,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