【考點分析】 本題考查對一定范圍內整數的篩選。考查的知識點主要包括:多位整數的分解算法,完全平方數判斷方法,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判斷語句中表達式。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |