Large Division 大整數取模

2021-08-07 19:07:42 字數 1791 閱讀 1522

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