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