九的餘數 模擬有餘數除式 O n ncase

2021-08-20 10:21:48 字數 2285 閱讀 7650

傳送門

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:3描述

現在給你乙個自然數n,它的位數小於等於一百萬,現在你要做的就是求出這個數整除九之後的餘數。輸入

第一行有乙個整數m(1<=m<=8),表示有m組測試資料;

隨後m行每行有乙個自然數n。

輸出輸出n整除九之後的餘數,每次輸出佔一行。

樣例輸入

345

465456541

樣例輸出

4

54

分析說來很慚愧作為乙個二年級的小學支教老師這個題目我幾乎是超時了一下午,最後實在討論區一位同學的啟發下過的,為什麼會超時呢,因為c++類裡面的一些操作函式在面臨著成千上萬次呼叫的時候是非常耗時的。比如說什麼erase啊,substr啊,為了偷懶,咳咳,是為了節約時間我還利用了atoi函式來進行轉換,結果表明在成千上萬次的這種呼叫的情況下這些封裝好的函式十分的耗時,所以利用迭代的方法遍歷一遍整個的大數就可以模擬出來有餘數除式的效果

超時**

01.

02.

03.

04.

05.namespacestd;

06.

07.data[maxn];

08.

09.m;

10.n;

11.print_result()

12.

13.(number.size()>1)

14.

15.

16.tnum=atoi(t.c_str());

17.yushu=tnum%9;

18.a[100];

19."";

20.(yushu!=0)

22.

23.

24.

25.(number.size()==0)

26.

27.

28.

29.(number[0]=='9')

30.

31.cout<

32.

33.

34.main()

35.

36.

37.(inti=0;i

38.

39.

40.

41.

42.

43.

#include #include#include#includeusing namespace std;

#define maxn 210

int data[maxn];

string number;

int m;

int n;

int len;

char a[1000001];

void print_result()

{ int m=0;

for(int i=0;i

nyoj 105 九的餘數

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在給你乙個自然數n,它的位數小於等於一百萬,現在你要做的就是求出這個數整除九之後的餘數。輸入 第一行有乙個整數m 1 m 8 表示有m組測試資料 隨後m行每行有乙個自然數n。輸出輸出n整除九之後的餘數,每次輸出佔一行。樣例輸入...

Nyoj 105 九的餘數

真崩潰,這居然是小學奧數,不得不佩服中國小孩!棄九法原理 在西元前9世紀,有個印度數學家名叫花拉子公尺,寫有一本 花拉子公尺算術 他們在計算時通常是在乙個鋪有沙子的土板上進行,由於害怕以前的計算結果丟失而經常檢驗加法運算是否正確,他們的檢驗方式是這樣進行的 例如 檢驗算式1234 1898 1892...

nylgACM 105 九的餘數

題目105 九的餘數 時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在給你乙個自然數n,它的位數小於等於一百萬,現在你要做的就是求出這個數整除九之後的餘數。輸入第一行有乙個整數m 1 m 8 表示有m組測試資料 隨後m行每行有乙個自然數n。輸出輸出n整除九之後的餘數,每次...