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...