//求100以内的勾股数 #include<stdio.h> int main(){ int a,b,c; int count=0; for(a=1;a<=100;a++){ for(b=a+1;b<=100;b++){//避免重复 for(c=1;c<=100;c++){ if(a*a+b*b==c*c) { printf("%2d %2d %2d \n",a,b,c); count ++; } } } } printf("一共%d\n",count); return 0; }
//阿姆斯特朗数 #include<stdio.h> int main() { int i,a,b,c; for(i=100;i<1000;i++){ a=i/100; b=i%100/10; c=i%10; if(i==a*a*a+b*b*b+c*c*c){ printf("%d\n",i); } } return 0; }
法二:
#include<stdio.h> #include<math.h> int main() { int i,s,j,k,t; int a[10]; for(i=1;i<1000;i++) { s=0; t=0; k=i; while(k) { a[t]=k%10; k=k/10; t++; } for( j=0;j<t;j++) { s=s+(pow(a[j],3)); } if(i==s) printf("阿姆斯特朗数%d\n",i); } return 0; }
//水仙花数 #include<stdio.h> int main(){ int a[3]; int i,s1,s2,s3; for(i=100;i<1000;i++){ a[0]=i/100; a[1]=i%100/10; a[2]=i%10; s1=pow(a[0],3); s2=pow(a[1],3); s3=pow(a[2],3); if(i==s1+s2+s3) { printf("%d\n",i); } } return 0; }