網教10 琪露諾的完美算數教室 的統計I

2021-07-22 14:56:16 字數 2126 閱讀 2486

眾所周知,琪露諾(チルノ,cirno)是幻想郷 (げんそうきょう)中首屈一指的天才,可以說⑨就是她的代名詞。

然而如今,她遇到了乙個和⑨有關的難題。你能幫助她麼?

題目是這樣的,給出兩個數 a 和 b (0 <= a <= b <= 10^10000),求 a 到 b 之間(包括a和b)的數字中,有多少個數字是包含9的(例如 19,910 等都是包含9的數字)。

輸入

第一行為乙個數字 t (0 < t <= 100) 表示資料組數。

之後的 t 行,每行包含兩個數 a 和 b (0 <= a <= b <= 10^10000)。

輸出

對每組資料輸入,輸出乙個數字,表示 a 到 b 之間的數字中(包括a和b),有多少個數字是包含9的。(注意:答案可能很大)

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 1

以文字方式顯示

1↵0 9↵

以文字方式顯示1↵

1秒64m

0 題解:

感覺這個題挺難的,題目寫的很簡單,但是思考量非常大。看了好幾個部落格問了幾個人終於才弄明白。

首先要知道:從0到10^n一共有10^n-9^n個含9的數,在遇到9之前就一直這樣算,遇到9之後就直接加上9之後的那些數即可。

比如13012958就是求10000000的9+3000000的9+10000的9+2000的9+900的9+58(900到957,一共是58個數)

也就是先從前往後走,在遇到9之前算(10^n-9^n)*a,遇到9之後直接加(也就還是a*10^n,就不用減9^n了)

由於資料很大,所以用很多個int陣列來存,最後逐一輸出,除了第乙個之外其他的陣列在輸出的時候都要補字首0.資料有10^10000,而int只存10^8,所以開1300個int陣列就夠儲存的了。

還有要注意的是大數相加相減和相乘,這裡要記得取模進製。

ac**:

#include#include#define mod 100000000  

//因為int是有精度範圍的,所以加乙個mod以防止爆int,最後輸出的時候再逐個輸出

#define last 4000

//last是假定的答案最後一位,一開始開太大了就t了 tat

char start[10005], end[10005];

int res1[4005], res2[4005], res[4005];

void add(int a, int ak)

//進製

else break;

} } void multi(int a, int ak)

//進製

} void minus(int a1, int a2, int a3)

for (i = last; i >0; i--)

} }//a1是結果陣列

int ans1[10005] = , ans2[10005];//分別儲存乘10和9

void fun(char a,int b)

if (b == 1)

minus(res1, ans1, ans2);//最後再把它們減一下

else

minus(res2, ans1, ans2);

}

int main()

i = last;

while (res[i] >= mod)

i = 0;

while (!res[i]&&i<=last)

i++;//把字首的0全都跳過去

printf("%d", res[i]);//第乙個不用補0

i++;

while (i <= last)

printf("\n");

} return 0;

}

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 1

以文字方式顯示

1↵0 9↵

以文字方式顯示1↵

1秒64m0

琪露諾的完美算數教室 的統計I

問題描述 眾所周知,琪露諾 cirno 是幻想郷 中首屈一指的天才,可以說 就是她的代名詞。然而如今,她遇到了乙個和 有關的難題。你能幫助她麼?題目是這樣的,給出兩個數 a 和 b 0 a b 10 10000 求 a 到 b 之間 包括a和b 的數字中,有多少個數字是包含9的 例如 19,910 ...

琪露諾的算術教室

time limit 1000ms memory limit 65536kb 給出乙個非負整數a,將這個數字的最低位移動到最高位 原來的最高位變為次高位,次低位變成最低位 得到非負整數b,發現b恰好是a的k倍。現給出a的最低位的值n,和倍數k,求最小的非負整數b。第一行輸入乙個正整數t 1 t 10...

BIT琪露諾的完美演算法教室 3 初上征途的za

題目背景 勵志成為全宇宙第一的口袋妖怪大師 咦?的za終於要踏上了他的旅程。za匆匆忙忙地從大木博士那裡拿了幾個精靈球,從關都地區的真新鎮出發了。沒走幾步,za來到了神奇的皮卡丘森林,眼前躺滿了琳琅滿目的皮卡丘們 好姿勢,請自行腦補 由於是新手,za並不知道哪只皮卡丘的個體值比較高,只好認為其中最肥...