跳轉至分析
跳轉至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結尾。然後,經過計算,輸出...