given two integers,aandb, you should check whetherais divisible bybor not. we know that an integerais divisible by an integerbif and only if there exists an integercsuch thata = b * c.
input
input starts with an integert (≤ 525), denoting the number of test cases.
each case starts with a line containing two integersa (-10200 ≤ a ≤ 10200)andb (|b| > 0, b fits into a 32 bit signed integer). numbers will not contain leading zeroes.
output
for each case, print the case number first. then print'divisible'ifais divisible byb. otherwise print'not divisible'.
sample input 6
101 101
0 67
-101 101
7678123668327637674887634 101
11010000000000000000 256
-202202202202000202202202 -101
sample output
case 1: divisible
case 2: divisible
case 3: divisible
case 4: not divisible
case 5: divisible
case 6: divisible
用到公式:例如:1234%b=(((1%b*10+2)%b*10+3)%b*10+4)%b,該公式是由同餘定理推導而來。
1234可化成((1*10+2)*10+3)*10+4
1234%b=(((1*10+2)*10+3)*10+4)%b
運用加法和乘法的同餘定理公式,可得
#include#includechar a[205];
int main()
{ int t,l,bi,e;
long long b,sum;
char q;
while(~scanf("%d",&t))
{ e=1;
while(t--)
{ scanf("%s",a);
if(a[0]=='-') bi=1; //該題只需判斷能不能整除,不用考慮符號
else bi=0; //將負號都變為正號
l=strlen(a); //我的辦法是改變起始位置,若有負號,則從a[1]開始
scanf("%lld",&b);
if(b<0) b=-b;
sum=0;
for(int i=bi;i
JS十大取整方法解說
parseint js內建函式,注意接受引數是string,所以呼叫該方法時存在型別轉換 parseint 1.5555 1number.tofixed 0 注意tofixed返回的字串,若想獲得整數還需要做型別轉換 1.5555.tofixed 0 1 math.ceil 向上取整 math.ce...
向上取整與向下取整
向下取整的運算稱為floor,用數學符號 表示,與之相對的,向上取整的運算稱為ceiling,用數學符號 表示。c語言定義的取整運算既不是floor也不是ceiling,無論運算元是正是負總是把小數部分截斷 truncate 所以當運算元為正的時候相當於floor,當操作符為負的時候相當於ceili...
int向下取整 向上取整
原題點這裡 這道題主要考察的是排序,有個方便的方法就是定義乙個結構體,儲存每個志願者的報名號和筆試分數,然後定義乙個排序就ok了 值得注意的是,題目裡有乙個要求是取給定人數 150 向下取整 的分數作為面試分數線,這裡順便提一下c 裡面的兩個取整函式 地板函式 floor 和天花板函式 ceil 舉...