#1305:Fermat vs. Pythagoras--注意关键变量清零
2015-08-26 22:41
495 查看
结果:wrong answer:
结果:AC
特此记录!
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int num; int m, n, k, i, maxN, x, y, z, a, b, r; int count=0, unuse=0; bool flag[1000001] = {false};//此处是关键 while (scanf("%d",&num) != EOF){ count=0, unuse=0; for (m=1; m <= (int)sqrt(num-1); m++){ maxN = (int)sqrt(num - m*m); maxN = maxN >= m ? m-1 : maxN; //printf("\n\nm=%d, maxN=%d\n", m, maxN); for (n=1; n <= maxN; n++){ //printf("\n\n@n=%d\n",n); //辗转相除法 if (n%2 != m%2){ a=m, b=n, r=1; for(; (r=a%b) != 0; a=b, b=r){ //printf("a=%d, b=%d, r=%d\n", a, b, r); ; } if (b==1){ count ++; //printf("count=%d\n", count); x = m*m - n*n; y = 2*m*n; z = m*m + n*n; //printf("x=%d, y=%d, z=%d\n", x, y, z); for (k=1; k*z <= num; k++){ flag[k*x] = flag[k*y] = flag[k*z] = true; //printf("k=%d k*z=%d\n", k, k*z); } } } } } // printf("%d ", count); for(i=1; i<= num; i++) if (!flag[i]) unuse ++; printf("%d %d\n", count, unuse); } //while return 0; }
结果:AC
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int num; int m, n, k, i, maxN, x, y, z, a, b, r; int count=0, unuse=0; // bool flag[1000001] = {false}; while (scanf("%d",&num) != EOF){ bool flag[1000001] = {false};//发现区别了吗? count=0, unuse=0; for (m=1; m <= (int)sqrt(num-1); m++){ maxN = (int)sqrt(num - m*m); maxN = maxN >= m ? m-1 : maxN; //printf("\n\nm=%d, maxN=%d\n", m, maxN); for (n=1; n <= maxN; n++){ //printf("\n\n@n=%d\n",n); //辗转相除法 if (n%2 != m%2){ a=m, b=n, r=1; for(; (r=a%b) != 0; a=b, b=r){ //printf("a=%d, b=%d, r=%d\n", a, b, r); ; } if (b==1){ count ++; //printf("count=%d\n", count); x = m*m - n*n; y = 2*m*n; z = m*m + n*n; //printf("x=%d, y=%d, z=%d\n", x, y, z); for (k=1; k*z <= num; k++){ flag[k*x] = flag[k*y] = flag[k*z] = true; //printf("k=%d k*z=%d\n", k, k*z); } } } } } // printf("%d ", count); for(i=1; i<= num; i++) if (!flag[i]) unuse ++; printf("%d %d\n", count, unuse); } //while return 0; }
特此记录!
相关文章推荐
- angularjs 去往其他页面,目标页面controller中的方法无法自动加载
- 最简单的html轮播图制作适合新手
- CSS:超出省略三部曲
- Fedora20配置VNC服务进行远程桌面链接
- angularjs 切换页面传参数
- JavaScript中创建对象的几种方式
- angularjs 页面返回 参数传递
- HDU 4009 Transfer water
- 【BZOJ 1015】[JSOI2008]星球大战starwar
- JSTL点滴汇总_2015
- 【LeetCode】之Swap Nodes in Pairs
- Javascript标准类型的方法集
- JS学习之prototype属性
- Javascript生成Guid
- HTML5 学习记录——2
- 说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
- jquery学习
- leetcode 237 Delete Node in a Linked List(难易度:Easy)
- 剑指offer-第五章优化时间和空间效率(在字符串中第一次出现切只出现一次的字符)
- 一个简陋的 CSS 样式