【考点分析】 本题考查对一定范围内整数的筛选。考查的知识点主要包括:多位整数的分解算法,完全平方数判断方法,if判断语句和逻辑表达式。
【解题思路】 此题属于数学类问题。分析题干,本题需注意2个关键点:关键点1判断该数是否是完全平方数;关键点2判断该数是否有两位数数字相同。
本题的解题思路为:通过循环控制,依次判断100至999数是否满足关键点1(是否为完全平方数)。如果是,则将该数分解出各位数数字,并判断是否有两位数数字相同,如果存在,则个数加1,并将该数存入数组中。
【参考答案】
int jsValue(int bb[])
{
int i,j; /*定义循环控制变量*/
int cnt=0; /*定义计数器变量*/
int a3,a2,a1; /*定义变量存储三位数每位的数字*/
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; /*返回满足该条件的整数的个数*/
}
【易错提示】 完全平方数的判断方法错误,分解整数各个数位的方法错误,if判断语句中表达式。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |