日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

找“1”问题

發(fā)布時(shí)間:2024/4/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 找“1”问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目:

給定一個(gè)十進(jìn)制的正整數(shù),寫(xiě)下從1開(kāi)始,到N的所有整數(shù),然后數(shù)一下其中出現(xiàn)“1”的個(gè)數(shù)。 要求: 1.寫(xiě)一個(gè)函數(shù) f(N) ,返回1 到 N 之間出現(xiàn)的“1”的個(gè)數(shù)。例如 f(12)? = 5。 2.在32位整數(shù)范圍內(nèi),滿足條件的“f(N) =N”的最大的N是多少。 思路: 這道題目存在者一些規(guī)律: f(0)=0;f(1)=1;f(2-9)=1; f(10)=1+(0+1)=2; f(11)=(1+1)+(1+1)=4; f(13)=(1+1)+(3+1)=6; f(23)=(2+1)+10=13; f(33)=(3+1)+10=14; f(93)=(9+1)+10=20; f(123)=個(gè)位出現(xiàn)的1數(shù)+十位出現(xiàn)的1數(shù)+百位出現(xiàn)的1數(shù) 當(dāng)N = abcde時(shí) 以c位為例 if(c==0)  num=ab*100; if(c==1)  num=ab*100+de+1; if(c>1)  num=(ab+1)*100 代碼: #include <iostream> using namespace std; int main() {int n;cout<<"請(qǐng)輸入數(shù)字:";cin>>n;int count=0; int factor=1; int LowerNum=0;int CurNum=0;int HigherNum=0;while (n/factor!=0) {LowerNum=n-(n/factor)*factor;CurNum=(n/factor)%10;HigherNum=n/(factor*10);if(CurNum==0) count=count+HigherNum*factor; if(CurNum==1)count=count+HigherNum*factor + LowerNum +1;if(CurNum>1)count=count+(HigherNum+1)*factor;factor=factor*10;}cout<<"出現(xiàn)數(shù)字1的個(gè)數(shù)為:"<<count<<endl;return 0; }

  

  

截圖: 總結(jié): 一些題目總存在一些的規(guī)律,我們?cè)谟龅絾?wèn)題時(shí)應(yīng)多多總結(jié)尋找題目中的規(guī)律,多列舉一些有代表的數(shù)從中找到規(guī)律在推廣到一般,解決問(wèn)題。

轉(zhuǎn)載于:https://www.cnblogs.com/lingxi/p/4549564.html

總結(jié)

以上是生活随笔為你收集整理的找“1”问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。