不同的枚举方法,效率完全不同。值得记录一下! 

 1 #include <cstdio>
 2 #include <cstring>
 3 int t, a, b, c, n, cas = 0, count = 0;
 4 int cnt[30000000];
 5 void pre() {
 6     count = 0;
 7     memset(cnt, 0, sizeof(cnt));
 8 
 9     for (a = 1; a <= 30000000; a++) {
10         for (c = 1; c < a; c++) {
11             if (a%c == 0 && ((a-c)^a)==c) {
12                 count++;
13             }
14         }
15         cnt[a-1] = count;
16     }
17 
18 }
19 int main(void)
20 {
21     
22     for (scanf("%d", &t); t--;) {
23         scanf("%d", &n);
24         printf("Case %d: %d\n", ++cas, cnt[n-1]);
25     }
26     return 0;
27 }
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-07
  • 2022-01-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-26
  • 2022-12-23
  • 2021-08-17
  • 2021-07-15
  • 2021-05-22
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案