/************************
*Date:2008-11-19
*Writen BY:Jacky_Dai
************************/
//
// 1的数目
// “智慧碰撞”专栏之七
// 给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。
// 例如:
// N= 2,写下1,2。这样只出现了1个“1”。
// N= 12,我们会写下1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。这样,1的个数是5。
//
//TODO:Add you needed head file
#include <stdio.h>
#include <iostream>
using namespace std;
//
long CmpareNumber(long lNumber);//某个数含有1的数量
long CountOneNumber(long lRange);//N个数中含有1的数量
//
void main()
{
for (long i = 1; i < 9999; i++)
{
printf("%ld", CmpareNumber(i));
if (i%10 ==0)
{
printf(" ");
}
if (i%50 ==0)
{
printf("/n");
}
}
printf("%ld:%ld/n", 321, CountOneNumber(321));
}
long CmpareNumber(long lNumber)
{
long lCount = 0;
while (lNumber != 0)
{
if ((lNumber%10) == 1)
{
lCount++;
}
lNumber/=10;
}
return lCount;
}
long CountOneNumber(long lRange)
{
long lCount = 0;
for (long i = 0; i < lRange; i++)
{
lCount += CmpareNumber(lRange);
}
return lCount;
}
*Date:2008-11-19
*Writen BY:Jacky_Dai
************************/
//
// 1的数目
// “智慧碰撞”专栏之七
// 给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。
// 例如:
// N= 2,写下1,2。这样只出现了1个“1”。
// N= 12,我们会写下1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。这样,1的个数是5。
//
//TODO:Add you needed head file
#include <stdio.h>
#include <iostream>
using namespace std;
//
long CmpareNumber(long lNumber);//某个数含有1的数量
long CountOneNumber(long lRange);//N个数中含有1的数量
//
void main()
{
for (long i = 1; i < 9999; i++)
{
printf("%ld", CmpareNumber(i));
if (i%10 ==0)
{
printf(" ");
}
if (i%50 ==0)
{
printf("/n");
}
}
printf("%ld:%ld/n", 321, CountOneNumber(321));
}
long CmpareNumber(long lNumber)
{
long lCount = 0;
while (lNumber != 0)
{
if ((lNumber%10) == 1)
{
lCount++;
}
lNumber/=10;
}
return lCount;
}
long CountOneNumber(long lRange)
{
long lCount = 0;
for (long i = 0; i < lRange; i++)
{
lCount += CmpareNumber(lRange);
}
return lCount;
}