UVa 10176

  题目大意:判断一个很大的二进制能否被131071整除。在二进制转十进制的过程中不断取模,最后判断结果是否是0就可以了。

 1 #include <cstdio>
 2 #include <cstring>
 3 
 4 int main()
 5 {
 6 #ifdef LOCAL
 7     freopen("in", "r", stdin);
 8 #endif
 9     char str[200];
10     while (gets(str))
11     {
12         int t = 0;
13         bool stop = false;
14         do
15         {
16             int len = strlen(str);
17             for (int i = 0; i < len; i++)
18             {
19                 if (str[i] == '#')
20                 {
21                     stop = true;
22                     break;
23                 }
24                 if (str[i] == '0' || str[i] == '1')
25                 {
26                     t = t * 2 + str[i] - '0';
27                     if (t >= 131071)  t %= 131071;
28                 }
29             }
30         } while (!stop && gets(str));
31         if (t == 0)  printf("YES
");
32         else  printf("NO
");
33     }
34     return 0;
35 }
View Code

  话说这个输入还是小小纠结了一下。

原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3332215.html