不可否認,小強是一名數學天才,大家都這麼說。天才小強的兩大最新發現如下:(1) 正整數n除3的餘數,等價於,正整數n的各位數字之和除3的餘數;(2) 正整數n除9的餘數可以通過這樣的方法來計算:計算n 的各位數之和,設為m,如果m已經是一位數,那麼餘數就是m;否則設n=m,重新進行計算n的各位數之和m,直到m是乙個一位數。但是,正整數除1,2,4,5,6,7,8,也存在類似的性質嗎?這真是乙個難題啊!小強想睡覺了,不去管了。現在請你計算一下正整數n除一位數m的餘數。檔案中有一些數對,一為大整數(可能大到100位)n,另一為一位數m(>0)。求其n除以m的餘數。輸入無
輸出無樣例輸入
23 7
123 9
樣例輸出26
1
02 e.g 1677/
2=13 e.g 1671+
6+7=
141+4
=55/
3=24 e.g 16767/
4=35 e.g 1677/
5=26 e.g 1671+
6+7=
141+4
=57 e.g 167
8 e.g 167
167/8=
79 e.g 1671+
6+7=
141+4
=5對於7來說,從個位數開始每一位都對應乙個餘數,6個數進行一次迴圈1/
7=110
/7=3
100/7=
21000/7
=610000/7
=4100000/7
=5
還是說下原理吧
e.g 11111
9從第一位開始讀取:11%
9=1讀取第二位:111%
9=2(
11=10+
1)讀取第三位:1(20
+1)%
9=3.
..
餘數乘以10就是在假設當前位是個位,然後讀取下一位就是十位,讀取下下位就是百位,以此類推,不斷進行累積除餘。
#include
#include
intmain()
return0;
}
#include
#include
int seven[6]
=;void
chartoint
(char s,
int a)
void
convert
(int n,
int s)
s[0]=i;
for(i=
1;i<=s[0]
/2;i++)}
intdivide_7
(int a)
}return sum%7;
}int
divide_2_4_8
(int a)
return sum;
}int
divide_3_6_9
(int a)
}return a[1]
;}void
divide
(char s,
int b)
; a[0]
=strlen
(s)-1;
//位數
chartoint
(s,a);if
(b%3==0
) result=
divide_3_6_9
(a)%b;
else
if(b==
5) result=a[a[0]
]%5;
else
if(b%2==
0) result=
divide_2_4_8
(a)%b;
else
if(b%7==
0) result=
divide_7
(a);
printf
("%d\n"
, result);}
intmain()
return0;
}
NEUQ 1256 核電站問題
時間限制 1 sec 記憶體限制 128 mb 乙個核電站有n個放核物質的坑,坑排列在一條直線上。如果連續 個坑中放入核物質,則會發生 於是,在某些坑中可能不放核物質。現在,請你計算 對於給定的n,求不發生 的放置核物質的方案總數。輸入檔案只有多行,每行對應乙個正整數n 輸出檔案有多行,每行只有乙個...
餘數問題及分頁邏輯
在整數的除法中,只有能整除與不能整除兩種情況。當不能整除時,就產生餘數,所以餘數問題在小學數學中非常重要。餘數有如下一些重要性質 a,b,c均為自然數 1 餘數小於除數。2 被除數 除數 商 餘數 除數 被除數 餘數 商 商 被除數 餘數 除數。參見下列帖子 public class my 怎麼是2...
NYOJ之九的餘數(大數問題)
九的餘數 時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在給你乙個自然數n,它的位數小於等於一百萬,現在你要做的就是求出這個數整除九之後的餘數。輸入 第一行有乙個整數m 1 m 8 表示有m組測試資料 隨後m行每行有乙個自然數n。輸出 輸出n整除九之後的餘數,每次輸出佔一...