一本通1171 大整數的因子

2021-08-31 23:22:48 字數 855 閱讀 8034

【題目描述】

已知正整數k滿足2≤k≤9,現給出長度最大為30位的十進位製非負整數c,求所有能整除c的k。

【輸入】

乙個非負整數c,c的位數≤30。

【輸出】

若存在滿足 c%k == 0 的k,從小到大輸出所有這樣的k,相鄰兩個數之間用單個空格隔開;若沒有這樣的k,則輸出"none"。

【輸入樣例】

30【輸出樣例】

2 3 5 6

分析:c只能使用字串的形式表示,然後轉成int型的陣列儲存。然後這就轉成一道高精除低精的計算題。

要注意的就是細節問題,比如陣列的初始化,我很容易犯錯在這裡,然後在函式裡面查錯半天到崩潰,然後就是注意k迴圈很多次,每次都應該是用int c陣列中去%k。為了避免k=2的時候就對後面的迴圈造成影響,因此每次都使用c的備份tmp陣列去判斷if語句。細節很重要。

參考**:

#include//大整數的因子,高精除低精 

#include#includeusing namespace std;

void init(int a)

bool chu(int a,int k)

if(yushu==0) return 1;

else return 0;

}int main()

,tmp[50]=;

init(c);

bool flag=0;

for(int k=2;k<=9;k++)

// printf("\n");

if(chu(tmp,k))

} if(flag==0) printf("none");

return 0;

}

大整數的因子 奧賽一本通T1171

題目描述 已知正整數k滿足2 k 9,現給出長度最大為30位的十進位製非負整數c,求所有能整除c的k。輸入 乙個非負整數c,c的位數 30。輸出 若存在滿足 c k 0 的k,從小到大輸出所有這樣的k,相鄰兩個數之間用單個空格隔開 若沒有這樣的k,則輸出 none 輸入樣例 輸出樣例 2 3 5 6...

1171 大整數的因子

1171 大整數的因子 時間限制 1000 ms 記憶體限制 65536 kb 提交數 5166 通過數 2992 題目描述 已知正整數k滿足2 k 9,現給出長度最大為30位的十進位製非負整數c,求所有能整除c的k。輸入 乙個非負整數c,c的位數 30。輸出 若存在滿足 c k 0 的k,從小到大...

佇列(一本通)

這道題重點是關係的轉換和初始化 include include include includeusing namespace std int a 101 記錄接著的的那個節點 int n,m int main int ans void bfs int x,int y int main cout in...