☆題目24(無(wú)憂id 16 完全平方數(shù)問(wèn)題)
下列程序prog1.c的功能是:在三位整數(shù)(100至999)中尋找符合條件的整數(shù)并依次從小到大存入數(shù)組中;它既是完全平方數(shù),又是兩位數(shù)字相同,例如144、676等。
請(qǐng)編制函數(shù)實(shí)現(xiàn)此功能,滿足該條件的整數(shù)的個(gè)數(shù)通過(guò)所編制的函數(shù)返回。
最后調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件out.dat中。
請(qǐng)勿改動(dòng)主函數(shù)main()和寫(xiě)函數(shù)writeDat()的內(nèi)容。
#include
int jsValue(int bb[])
{int i,j,k=0;
int hun,ten,data;
for(i=100;i<=999;i++)
{j=10;
while(j*j<=i)
{if(i==j*j)
{ hun=i/100; data=i%100/10; ten=i%10;
if(hun==ten||hun==data||ten==data) bb[k++]=i;
}
j++;
}
}
return k;
}
main()
{
int b[20],num;
num=jsValue(b);
writeDat(num,b);
}
writeDat(int num,int b[])
{
FILE *out;
int i;
out=fopen("out.dat","w");
printf("%d\n",num);
fprintf(out,"%d\n",num);
for(i=0;i fclose(out);
}
另一解法:
int jsValue(int bb[])
{int i,j,cnt=0,bw,sw,gw;
for(i=100;i<=999;i++)
{ bw=i/100; sw=i%100/10; gw=i%10;
for(j=10;j*j<=i;j++)
if(i==j*j&&(bw==sw||sw==gw||gw==bw)) bb[cnt++]=i;
}
return cnt;
}
下列程序prog1.c的功能是:在三位整數(shù)(100至999)中尋找符合條件的整數(shù)并依次從小到大存入數(shù)組中;它既是完全平方數(shù),又是兩位數(shù)字相同,例如144、676等。
請(qǐng)編制函數(shù)實(shí)現(xiàn)此功能,滿足該條件的整數(shù)的個(gè)數(shù)通過(guò)所編制的函數(shù)返回。
最后調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件out.dat中。
請(qǐng)勿改動(dòng)主函數(shù)main()和寫(xiě)函數(shù)writeDat()的內(nèi)容。
#include
int jsValue(int bb[])
{int i,j,k=0;
int hun,ten,data;
for(i=100;i<=999;i++)
{j=10;
while(j*j<=i)
{if(i==j*j)
{ hun=i/100; data=i%100/10; ten=i%10;
if(hun==ten||hun==data||ten==data) bb[k++]=i;
}
j++;
}
}
return k;
}
main()
{
int b[20],num;
num=jsValue(b);
writeDat(num,b);
}
writeDat(int num,int b[])
{
FILE *out;
int i;
out=fopen("out.dat","w");
printf("%d\n",num);
fprintf(out,"%d\n",num);
for(i=0;i
}
另一解法:
int jsValue(int bb[])
{int i,j,cnt=0,bw,sw,gw;
for(i=100;i<=999;i++)
{ bw=i/100; sw=i%100/10; gw=i%10;
for(j=10;j*j<=i;j++)
if(i==j*j&&(bw==sw||sw==gw||gw==bw)) bb[cnt++]=i;
}
return cnt;
}

