刚开始编的时候用的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;
}






