高精n進製加法

2021-10-06 02:12:59 字數 2700 閱讀 6807

powered by:ab_in 局外人

從大佬題解搬了一部分思想過來。

其實就是兩步:

一.回文判斷。

二.轉換為字串,做高精加。

1.先將兩個字串轉化為10進製的放在陣列裡。

2.兩個陣列進行n進製加法。

3.每一位帶入表中求值。

c++

#include

using

namespace std;

const

int maxn=

110;

char six[20]

="0123456789abcdef"

;bool

huiwen

(string str1)

string gaojingjia

(int k,string str1)

,num2[maxn]

=,sum[maxn]=;

int len=str1.

length()

,len_sum=

1,x=0;

string str2=str1;

reverse

(str1.

begin()

,str1.

end())

;for

(int i=

0;i)while

(len>=len_sum)

sum[len_sum]

=x;while

(sum[len_sum]==0

) len_sum--

;//將前面0全剪了

string str;

for(

int i=len_sum;i>=

1;i--

) str+

=six[sum[i]];

//比較巧妙的點!!,由於不能直接輸出結果,故可以定義乙個字串,對應乙個const的字串,數字是幾,就變為字元讓str加上。

//而且字串從左往右加

return str;

}int n;string m;

intmain()

else

m=gaojingjia

(n,m);}

printf

("impossible!");

return0;

}

中間tip2,搬來寫一下

int len1=str1.

length()

;int len2=str2.

length()

;//前面補0,弄成長度相同

if(len1else

len1=str1.

length()

;

int轉string的函式(網上搜的)

string sum

(int a)

py**

既然py自帶高精,就不用陣列n進製高精加了。

因為n進製沒辦法像十進位制那麼好相加,則我們先轉換成10進製求和,再短除法轉換成n進製。

1.先強制轉換兩數之和為10進製int(字串,這個字串是什麼進製)

2.輾轉相除兩數時n進製轉換

3.每一位帶入模版

def

f(s,k)

: mu_ban=

"0123456789abcdef"

;a=""

while s>0:

#注意這裡是大於0

yu_shu=s%k

s=s//k

a+=mu_ban[yu_shu]

return a[::

-1]n=

int(

input()

)m=input()

;ans=

0while ans<

30and

(m!=m[::

-1])

: m=f(

int(m,n)

+int

(m[::-

1],n),n)

ans+=

1if ans>=30:

print

("impossible!"

)else

:print

(f'step='

)

人生苦短,我用py。

完結。

單純的高精實現斐波那契數列。

#include

using

namespace std;

int n,a[

5001][

1200];

intmain()

bool judge=

false

;for

(int i=

3;i<=n;i++

)for

(int j=

1;j<=

1200

;j++)}

}for

(int j=

1200

;j>=

1;j--

) cout<}return0;

}

題目 洛谷1604 B進製星球(高精加法 R進製)

題目描述 話說有一天,小z乘坐宇宙飛船,飛到乙個美麗的星球。因為歷史的原因,科技在這個美麗的星球上並不很發達,星球上人們普遍採用b 2 b 36 進製計數。星球上的人們用美味的食物招待了小z,作為回報,小z希望送乙個能夠完成b進製加法的計算器給他們。現在小z希望你可以幫助他,編寫實現b進製加法的程式...

被限制的加法(高精入門)

題目 僅用不超過10個的變數,變成計算出兩個等長的n 1 輸入格式 第一行乙個數n,表示位數,後面有n行,每行兩個數字,表示a b相對位的兩個數,輸入的格式是從最高位開始到最低位。輸出格式 輸出兩數的和 輸入樣例 1 12 3 0 53 7 輸出樣例 思路 由於記憶體的限制只能考慮從高位到低位的演算...

被限制的加法(高精入門)

題目 僅用不超過10個的變數,變成計算出兩個等長的n 1輸入格式 第一行乙個數n,表示位數,後面有n行,每行兩個數字,表示a b相對位的兩個數,輸入的格式是從最高位開始到最低位。輸出格式 輸出兩數的和 輸入樣例 1 12 3 0 53 7 輸出樣例 思路 由於記憶體的限制只能考慮從高位到低位的演算法...