【答案】
int jsValue(int bb[ ])
{
int i,j; /*定义循环控制变量*/
int cnt=0; /*定义计数器变量*/
int a3,a2,a1; /*定义变量存储3位数每位的数字*/
for(i=100;i<=999;i++) /*在该范围中找符合条件的数*/
for(j=10;j<=sqrt(i);j++)
if(i==j*j) /*如果该数是完全平方数*/
{
a3=i/100; /*求该数的百位数字*/
a2=i%100/10; /*求该数的十位数字*/
a1=i%10; /*求该数的个位数字*/
if(a3==a2 || a3==a1 || a2==a1) /*若有两位数字相同*/
{
bb[cnt]=i; /*则把该数存入数组bb中*/
cnt++; /*统计满足条件的数的个数*/
}
}
}
return cnt; /*返回满足该条件的整数的个数*/
}
【解析】解答本题,首先应该考虑用一个for循环来依次取得100到999之间的各个数,接着我们再利用一个循环用10以上的两位数逐个去拆被判断的数,如果被判断的数恰好可以被完全拆分,则该数是一个完全平方数,接着就开始依次求得被判断的数的百位、十位、个位上的数值,看是否有两位数字相同。把满足条件的数存入数组bb中,并用计数器变量cnt来统计满足条件的数的个数。最后将cnt作为函数值返回。