The task is simple: given any positive integer N, you are supposed to count the total number of 1’s in the decimal form of the integers from 1 to N. For example, given N being 12, there are five 1’s in 1, 10, 11, and 12.
Input Specification:
Each input file contains one test case which gives the positive N (<=230).
Output Specification:
For each test case, PRint the number of 1’s in one line.
Sample Input: 12 Sample Output: 5 題意:找出0~N內(nèi)的個(gè)數(shù),共有多少個(gè)1 算法:對(duì)每一位單獨(dú)考慮,看該位可能存在多少個(gè)1; 可以找一個(gè)數(shù),找出規(guī)律,如:30701,對(duì)個(gè),十,百,千,萬(wàn)各位分析;
#include<cstdio>int main(){ int n,a=1,ans=0; int left,right,now; scanf("%d",&n); while(n/a){ left=n/(a*10); now=n/a%10; right=n%a; if(now<1) ans+=left*a; else if(now==1) ans+=left*a+right+1; else if(now>1) ans+=(left+1)*a; a*=10; } printf("%d/n",ans); return 0;}
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注