這裡所謂的「光棍」,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。 現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字:第乙個數字s,表示x乘以s是乙個光棍,第二個數字n是這個光棍的位數。這樣的解當然不是唯一的,題目要求你輸出最小的解。
輸入格式:
輸入在一行中給出乙個不以5結尾的正奇數x(<1000)。
輸出格式:
在一行中輸出相應的最小的s和n,其間以1個空格分隔。
輸入樣例:
31輸出樣例:
3584229390681 15
分析:本題第一眼看,就會發現這是個大數除法加大數取餘;複雜度有點高呀。
但是通過分析會發現一些規律:
因為它這個數只能新增1,那麼我們可以通過豎式的除法來做。
如果這個數取餘x==0;那麼這個數就已經是要找的數了。
題目實際上是求各個位全為1的數被輸入數x除盡後的商的最小值,由於商可能過大,故採用模擬豎式除法的方式求出商的各個位並輸出。顯然,除數為x,被除數一開始需要在末位不斷添1直到被除數不小於除數,才開始求商。求出第乙個商後求餘數,若餘數為0說明運算結束,否則在餘數末位添1,重複上述求商過程。
參考部落格:
#include"stdio.h"
#include"string.h"
#include"algorithm"
using namespace std;
int main()
int result;
while(1)
printf(" %d\n",n);
}}
L1 046 整除光棍 (20 分)
這裡所謂的 光棍 並不是指單身汪啦 說的是全部由1組成的數字,比如1 11 111 1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字 第乙個數字s,表示x乘以...
L1 046 整除光棍 (20 分
l1 046 整除光棍 20 分 這裡所謂的 光棍 並不是指單身汪啦 說的是全部由1組成的數字,比如1 11 111 1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出...
L1 046 整除光棍 (20 分
l1 046 整除光棍 20 分 這裡所謂的 光棍 並不是指單身汪啦 說的是全部由1組成的數字,比如1 11 111 1111等。傳說任何乙個光棍都能被乙個不以5結尾的奇數整除。比如,111111就可以被13整除。現在,你的程式要讀入乙個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出...