刚开始编的时候用的for函数 后来为了排除错误给改成最简单的步骤了 。。。 大神不要见怪啊啊
程序代码:
#include<stdio.h> #include <malloc.h> int main(){ int b[9],c[5]; int l,i,j,n,m; int p(int,int); scanf("%d",&l); char * array = (int*)malloc(size * sizeof(int)); //这行就是我百度上复制来的,但是vc提示我missing ';' before 'type' for(i=0;i<l;i++){ scanf("%d",&a[i]); } for(i=0;i<l;i++){ c[0]=a[i]/10000000; c[1]=a[i]/1000000; c[2]=a[i]/100000; c[3]=a[i]/10000; c[4]=a[i]/1000; c[5]=a[i]/100; if(c[0]!=0) n=8; else if(c[1]!=0) n=7; else if(c[2]!=0) n=6; else if(c[3]!=0) n=5; else if(c[4]!=0) n=4; else n=3; for(j=0;j<9;j++) b[j]=0; m=0; for(j=n;j>0;j--){ m=m+b[j+1]*p(10,j); b[j]=(a[i]-m)/p(10,j-1); } if(p(b[1],n)+p(b[2],n)+p(b[3],n)+p(b[4],n)+p(b[5],n)+p(b[6],n)-a[i]==0) printf("Yes\n"); else printf("No\n"); } return 0; free(array); } int p(int x,int y){ int n=1,i; for(i=0;i<y;i++){ n=n*x; } return n; }