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

Java编程题:给定一个正整数num和进制数scale,计算出1~num所有数字在scale进制下的长度之和len

2019-03-22 22:42 786 查看

题目:(今天做的笔试题,写的时候没写出来,回来以后用了五分钟写出来了,也是醉了……原因是index=index+1;写到其他地方了。)

给定一个正整数num和进制数scale,范围(1<=num<=10^9,scale>1),请计算出1~num所有数字在scale进制下的长度之和len:

(这个题其实就是一个递归……)

[code]
public class findlength {
public static int find(int num,int scale){
int sum=0;
for(int i=1;i<=num;i++){
if(num<scale)
sum++;
else if(num>=scale){
int index=0;
index=returnindex(i,scale,index);
sum=sum+index+1;//index的意思是多加的位数
}
}
return sum;

}
public static int returnindex(int i,int scale,int index){
if(i/scale>=1){
index=returnindex(i/scale, scale, index);
index=index+1;
}else if(i/scale<1){
return index;
}
return index;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
int length=find(7, 2);//测试用例,结果应该是17
//下面截图依次是(10,10)(11,10)(100,10)(7,3)的结果
System.out.println(length);
}

}

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