PTA 大數整除

2021-10-23 19:13:33 字數 969 閱讀 2620

l1-046 整除光棍 (20分)

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

輸入格式:

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

輸出格式:

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

輸入樣例:

31
輸出樣例:

3584229390681

15

最開始呢,我用longlong定義,但好像根本不需要,,,

以下這一段是我自己最開始寫的只過了一部分的**。超時了,顯然用普通的除法直接運算是過不了的,所以,需要點技巧。

總結如下,

基本思路:以字元的的格式儲存大數,若除數已知並且為小數(符合本題),我只需要在大於除數的基礎上取除數的位數或者是多一位(相同位數可能不大於)用它去除 除數得到的商就是我要的商的前幾位,然後下一步,處理餘數,餘數乘10加1。

# include

# include

# include

# define ll long long

using

namespace std;

ll pow_

(int n,

int z)

return num;

}ll cost

(int num)

return cnt;

}int

main()

}}

思路:模擬除法計算

完全是

PTA 整除光棍

題目描述 這裡所謂的 光棍 並不是指單身汪啦 說的是全部由1組成的數字,比如1 11 111 1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字 第乙個數字s,...

PTA 整除光棍 20 分

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

大數除(正整數整除)

大數除 正整數整除 my solution 2015.10.31 include includechar c1 100 c2 100 int t1 100 t2 100 result 100 int yuchu int a,int b,int n,int m for i 0 i 0 i 找出最高位不...