1. 程式人生 > >面試演算法題:求a+aa+aaa+aaaa+aa...a的值

面試演算法題:求a+aa+aaa+aaaa+aa...a的值

題目

求s=a+aa+aaa+aaaa+aa…a的值,數字個數為n,其中a是一個數字。例如2+22+222+2222+22222(此時n=5)

思路

由於aa…a是一個整數,這樣基本排除要考慮越界問題,所以不用往大數方向考慮。
個位數就是n個a相加也就是a*n,十位數也就是a*(n-1)……
各個位置上的數乘以權值相加即可。

程式碼

private static void add_N1() {
        int n=3;
        int a=6;
        int x=0,y=0;
        for (int i = 0; i < n; i++) {
            x=a*(n-i);
            y+=x*Math.pow(10
,i); } System.out.print("和為: "+y); } 或者 private static void add_N1() { int n=3; int a=1; int x=0,y=0; for (int i = 0; i < n; i++) { x=a*(i+1); y=x+y*10; } System.out.print("和為: "+y); }

最後還是那句話,哪位看官有更好更便捷的演算法,請告知一下哈。