2.3.3 综合求3~6位自幂数 采用方法1)设直的求3~6位自方幂数的程序: #include<math.h> #include<stdio.h> void main() { int a1,a2,a3,a4,a5,a6,i,j; long int m3,n3,m4,n4,m5,n5,m6,n6; static int t[9]; static long s[9][10]; for(a1=1;a1<=9;a1++) for(a2=0;a2<=9;a2++) for(a3=0;a3<=9;a3++) { m3=a1*100+a2*10+a3;n3=pow(a1,3)+pow(a2,3)+pow(a3,3); if(m3==n3)s[3][++t[3>=m3; /*三位水仙花数*/ for(a4=0;a4<=9;a4++) { m4=m3*10+a4; n4=pow(a1,4)+pow(a2,4)+pow(a3,4)+pow(a4,4); if(m4==n4) s[4][++t[4>=m4; /*四位玫瑰花数*/ for(a5=0;a5<=9;a5++) { m5=m4*10+a5; n5=pow(a1,5)+pow(a2,5)+pow(a3,5)+pow(a4,5)+pow(a5,5); if(m5==n5) s[5][++t[5>=m5; /*五位五角星数*/ for(a6=0;a6<=9;a6++) { m6=m5*10+a6; n6=pow(a1,6)+pow(a2,6)+pow(a3,6)+pow(a4,6)+pow(a5,6)+pow(a6,6); if(m6==n6) s[6][++t[6>=m6; } } } } for(i=3;i<=6;i++) { printf("\n %d位自幂数有: ",i); for(j=1;j<=t[i];j++) printf("%ld ",s[i][j]); } printf("\n"); }
程序运行结果如下:

|