7 5 整除光棍 20 分 (模擬除法)

2021-10-18 19:25:35 字數 1463 閱讀 7795

跳轉至分析

跳轉至ac**

7-5 整除光棍 (20 分)

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

輸入格式:

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

輸出格式:

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

輸入樣例:

輸出樣例:

3584229390681 15

分析:像我這種傻瓜蛋最開始就是從1開始,乙個乙個加,直到算出乙個和x相乘所有位數都是1的整數,這樣顯然是最直接簡單的想法,但是很明顯效率極低,x輸入二三十執行幾分鐘都不會出結果;

然後我想能不能從1開始,逐個列舉,11,111,1111…看看一但這個數能整除x就結束,這樣逆向思考確實有點小聰明,但是得用到長整型,用int會超出範圍。然鵝,這樣其實x大一點的時候也會超時,因為思路還是過於簡單,。這是執行截圖

超時**:

#include

#include

using

namespace std;

intmain()

else

// cout <

}return0;

}

到最後,只能模擬手算除法,這是執行截圖

寫一下幫助理解

ac**:

//模擬除法

#include

using

namespace std;

intmain()

while(1

)//模擬小學學的整除,耐心看看應該看得懂

s = numeral*10+

1;num++;}

return0;

}

整除光棍(模擬除法)

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

7 5 整除光棍 20分

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

L1 046 整除光棍(模擬除法)

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