您的位置:首页 > 编程语言 > Java开发

java实例:1的数目

2015-08-16 19:42 417 查看
给定一个正整数N,写下从1开始到N的所有整数,然后数一下其中出现1的个数。

例如 N=3, 1,2,3 出现1个1

N=11, 1,2,3,4,5,6,7,8,9,10,11 出现4个1

解法1:

从1 开始遍历到N,将其中每一个数中含有1的个数加起来,就得到所有1的个数。

程序清单:

class count1num{

public int count(int n){

int m=0;

while (n!= 0){

if((n)==1){

m+=1;

}

n=n/10;

}

return m;

}

}

解法2:

将每一位上1的个数相加起来就是所有的1的个数和,例如123 个位出现1的个数为13,十位出现1的个数为20,百位出现1的个数为24,所有出现1的个数13+20+24=57.

程序清单:

// 各个位数上1 的个数之和

class count2{

public int count(int n){

int iCount=0;

int iFactor=1;

int iLowerNum=0;

int iCurrNum=0;

int iHigherNum=0;

while((n/iFactor )!=0){

iLowerNum = n - (n/iFactor) * iFactor;

iCurrNum = ( n / iFactor) % 10;

iHigherNum = n / (iFactor*10);

switch (iCurrNum)

{

case 0:

iCount += iHigherNum * iFactor;

break;

case 1:

iCount += iHigherNum * iFactor + iLowerNum +1;

break;

default:

iCount += (iHigherNum + 1) * iFactor;

break;

}

iFactor *= 10;

}

return iCount;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: