统计一个整数的所有因子的个数_【题解循环嵌套】1095:数1的个数
【題目描述】
給定一個十進(jìn)制正整數(shù)n(1≤n≤10000),寫下從1到n的所有整數(shù),然后數(shù)一下其中出現(xiàn)的數(shù)字“1”的個數(shù)。
例如當(dāng)n=2時,寫下1,2。這樣只出現(xiàn)了1個“1”;當(dāng)n=12時,寫下1,2,3,4,5,6,7,8,9,10,11,12。這樣出現(xiàn)了5個“1”。
【輸入】
正整數(shù)n。1 ≤ n ≤ 10000。
【輸出】
一個正整數(shù),即“1”的個數(shù)。
【輸入樣例】
12
【輸出樣例】
5
說明:
主要考查嵌套循環(huán)。
思路分析:
本題與下面題解使用了相同的循環(huán)嵌套框架:
【題解·循環(huán)】1091:求階乘的和
【題解·循環(huán)嵌套】1092:求出e的值
【題解·循環(huán)嵌套】1093:計算多項式的值
【題解·循環(huán)嵌套】1094:與7無關(guān)的數(shù)
外層循環(huán)遍歷1~n,共循環(huán)n次。每循環(huán)遍歷一個數(shù)字時,在內(nèi)層循環(huán)中統(tǒng)計該數(shù)含有多少個1,并把數(shù)目累計在計數(shù)器中。
而統(tǒng)計某個數(shù)含有1的數(shù)目,使用了前面題解的方法。即循環(huán)判斷某數(shù)的每一位上的數(shù)字是否等于1。
數(shù)據(jù)類型:本題無特別之處,所有變量可選擇int類型。
易錯點:
個別同學(xué)理解成【數(shù)字含有1就當(dāng)一個】,而實際上,一個數(shù)含有多少個1就算多少個。像111這個數(shù)字含有3個1,不是算一個,而是算3個。
運行結(jié)果:
參考代碼 - C++:
#include?using?namespace?std;
int?main(){
????int?n,?cnt?=?0;?//?cnt是計數(shù)器,用于累計1的數(shù)目
????cin?>>?n;
????for?(int?i?=?1;?i?<=?n;?i++)
????{
????????int?t?=?i;?//?因不能修改i,所以聲明t臨時存儲i的值
????????while?(t)
????????{
????????????if?(t?%?10?==?1)?cnt++;?//?如果個位數(shù)等于1,則累計
????????????t?/=?10;?//?刪除個位數(shù)
????????}
????}
????cout?<????return?0;
}
END
注:題目來源于網(wǎng)絡(luò),轉(zhuǎn)載于《信息學(xué)奧賽一本通(C++版)在線評測系統(tǒng)》,點擊下方的【閱讀原文】即可打開該題的鏈接。
題解屬于本微信公眾號【大神編程】原創(chuàng)。
總結(jié)
以上是生活随笔為你收集整理的统计一个整数的所有因子的个数_【题解循环嵌套】1095:数1的个数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: transactional注解的使用_J
- 下一篇: hbuid 集成svn_HBuilder