智力題(1的次數(shù),金子分塊)

1出現(xiàn)的次數(shù)

輸入一個整數(shù)n,求從1到n這n個整數(shù)的十進制表示中1出現(xiàn)的次數(shù)。例如輸入12,從1到12這些整數(shù)中包含1的數(shù)字有1,10,11和12,1一共出現(xiàn)了5次。原文

解題思路
個位

考慮將n的十進制的每一位單獨拿出討論,每一位的值記為weight。

以534為例,在從1增長到n的過程中,534的個位從0-9變化了53次,記為round。每一輪變化中,1在個位出現(xiàn)一次,所以一共出現(xiàn)了53次。

再來看weight的值。weight為4,大于0,說明第54輪變化是從0-4,1又出現(xiàn)了1次。我們記1出現(xiàn)的次數(shù)為count,所以:

count = round+1 = 53  + 1 = 54

如果此時weight為0(n=530),說明第54輪到0就停止了,那么:

count = round = 53
十位

從1到n,每增加10,十位的weight才會增加1,所以,一輪0-9周期內(nèi),1會出現(xiàn)10次。即rount*10。

再來看weight的值。當此時weight為3,大于1,說明第6輪出現(xiàn)了10次1,則:

count = round*10+10 = 5*10+10 = 60 

如果此時weight的值等于0(n=504),說明第6輪到0就停止了,所以:

count = round*10+10 = 5*10 = 50
類推
534 = (個位1出現(xiàn)次數(shù))+(十位1出現(xiàn)次數(shù))+(百位1出現(xiàn)次數(shù))=(53*1+1)+(5*10+10)+(0*100+100)= 214

金子分塊

一塊金子做為給雇員的工資,工作七天,每天都需要付工資,不能拖欠,也不能提前。至少要把金子分為多少塊?每天如何付?原文

分為7份,把它分成3份,第一份占 1 /7,第二份占2/7,第三份占4/7。

解析

第一刀切上整條黃金的七分之一,第二刀切上整條黃金的七分之二,剩下的七分之四為一份。

第一天給他你七切好的那七分之一,第二天給他你切好的七分之二,讓他返還你第一天付給他的那七分之一,第三天,給他他返還來的那七分之一,第四天,給他剩余地的七分之四,要回之前給他的那兩塊金條,第五天,將你要回的那七分之一的金條給他,第六天,要回七分之一,給他七分之二的那塊,第七天,給他最后一塊就完了。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容