1.求和,s=a+aa+aaa+aaaa...;如输入3,5则输出3+33+333+3333+33333;
public long sum(int num,int itemNum){ long sum=0; for(int i=1;i<=itemNum;i++){ sum+=getNum(num,i); } return sum; } public static long getNum (int n,int m){ long a=n; for (int i=1;i<m;i++){ a=a*10+n; } return a; }2.输入一个数组,然后不断加1或者减一,让数组中所有元素都相等,求最少变换次数
如【1,2,4】,则1,2,4->2,2,4->2,2,3->2,2,2
输出3;
public static int minMoves (int[] nums){ Arrays.sort(nums); int [] sum=new int[nums.length]; int k=0; for(int i=0;i<nums.length;i++){ for(int j=0;j<nums.length;j++){ if(i<j){ sum[k]+=nums[j]-nums[i]; } else{ sum[k]+=nums[i]-nums[j]; } } k++; } Arrays.sort(sum); return sum[0]; }有一说一,这是第一次AK;估计是不招人了
全部评论
(2) 回帖