C 大整數除法 大整數乘法

2021-08-17 20:56:20 字數 2183 閱讀 8198

l1-046. 整除光棍

這裡所謂的「光棍」,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。 現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字:第乙個數字s,表示x乘以s是乙個光棍,第二個數字n是這個光棍的位數。這樣的解當然不是唯一的,題目要求你輸出最小的解。

輸入在一行中給出乙個不以5結尾的正奇數x(< 1000)。

輸出格式:

在一行中輸出相應的最小的s和n,其間以1個空格分隔。

輸入樣例:

輸出樣例:

3584229390681 15

屬性

要求屬性

要求時間限制

400 ms

記憶體限制

65536 kb

**長度限制

8000 b

判題程式

standard

解析:

看到題目的提示就知道,絕對不可以從1開始試吧。我查了一下,(=゚ω゚)ノ發現了大整數除法這種巧妙的東西。

回想一下小時候學的除法。就是拿著除數從被除數的第一位開始算,化除法為減法的思路。

先看題目要求,輸入乙個數x,讓你輸出兩個數a和n,理一下:某個光棍數=a×

x,n=a×x,n

=a×x,n

為這個光棍數的位數。

(如果想不明白,可以看**後邊的補充)

答案:

#include

using namespace std;

intmain()

else

if(flag==1)

//scout<<0;

s=s%x;

///記錄餘數

if(s==0)

///能除盡則跳出

break

;}

cout<<

" "<

;///輸出位數

return0;

}

補充:以101為例子計算:

flag輸出標誌,用於標記是否開始輸出了,如果開始輸出,之後flag都不會改變了。

s ,s >= x , s % x都是像小學學的除法乙個作用,自己理解一下啦(●』◡』●)ノ♥ 。

題目內容:

求兩個不超過200位的非負整數的積。

輸入格式:

有兩行,每行是乙個不超過200位的非負整數,沒有多餘的前導0。

輸出格式:

一行,即相乘後的結果。結果裡不能有多餘的前導0,即如果結果是342,那麼就不能輸出為0342。

輸入樣例:

12345678900

98765432100

輸出樣例:

解析:就是普通乘法式子。

答案:

#include

#include

#include

#include

using namespace std;

intmain()

}for

(int i=a.

length()

+b.length()

-1;i>

0;i--

)//乘法進製

}int c=0;

for(

int i=

0;i)for

(int i=c;i

(c==n)

return0;

}

js 大整數加法 乘法 除法

有一定的程式設計經驗的人都知道,當我們對資料操作的時候,若資料過大,計算機將這個大數從十進位制的轉為二進位制的,是沒有那個型別的放的了的,因此,我們經常將乙個大數轉化為字串來操作。接下來我將演示大整數的加法 乘法 除法操作。附 不考慮負數 思路 我們將兩個數進行逆序轉換,然後按位進行相加,將相加的結...

大整數除法

define maxint 1000 define max 200 int num1 max 10 int num2 max 10 unsigned int total max 10 int sub int a,int b int i 0 for a b i return i cstring big...

c 大整數乘法

include include include struct dnode class bigint bigint bigint a bigint friend bigint operator bigint a,bigint b friend bigint operator bigint a,bigi...