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); } }
相关文章推荐
- 比特位计数(给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。)
- 给定一个任意的10进制数N,从1开始到N,计算所有数中1出现的次数
- java 给定一个非负整数num,反复添加所有的数字,直到结果只有一个数字
- java 输入一个正整数,然后显示从0-该数字为止表示所有的数字
- 给定一个十进制正整数N,求出从1开始,到N的所有整数,数字1出现的次数(java实现)
- 给定一个数组,当中有正负数,求当中的一段“子数组”(即任意长度,连续的数字), 使得这个“子数组”的和是所有“子数组”和中最大的
- java__给定一个数组和一个数(该数不一定在数组中),从数组里删掉这个数字,返回剩下的数组长度。
- 2013年用友校招编程题:用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列
- 今天开始学Java 给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。
- 给定一个正整数N,从1到N所有整数,计算出现1的个数
- 求出一个给定数字的所有因子(6 = 2 * 3)
- 给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。
- 给定一个int型数字,组合成规定长度的字符串,不够用0补齐
- 409. Longest Palindrome (计算可由一个字符串中数字字符构成的最长回文数的长度)
- Java经典算法集——如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 作业3(2)输入一个正整数 n,再输入 n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数。
- 算法实战:给定一个带通配符问号的数W,问号可以代表任意一个一位数字。 再给定一个整数X,和W具有同样的长度。 问有多少个整数符合W的形式并且比X大?
- 输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形。 例如: 输入:3+8×2/9-2 输出:2
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。