HLJUOJ1120(數學問題)

2021-06-26 04:50:31 字數 1259 閱讀 6526

time limit: 1 sec  

memory limit: 128 mb

submit: 59  

solved: 16 [

submit][

status][

web board]

n個站成一列的士兵和乙個整數m,士兵編號是1 --- n。每次士兵按編號從小到大的順序依次報數,如果報的數不是m的倍數,則該士兵出列。這樣重複幾次直到剩下的士兵的數量小於m為止。問最後剩下的士兵有幾個,他們的編號分別是多少。  

多組測試資料。

每組資料報含兩個數n,m。

n<=1000000000

m<=1000

當n=0,m=0時結束

每組測試資料輸出兩行。

第一行乙個數t,代表剩下的士兵數。

第二行t個數,代表剩下的士兵的編號,公升序排列。

10 3

8 30 0

192

3 6

解題思路:

這裡題意補充下,資料保證n > m。不斷地n / m,直到小於m為止。這時最後小於m的n為剩的人數。接下來我們需要關注最開始的那個人的編號,我們前面在出的時候記錄做除法的次數,最開始的編號就是m ^ cnt,補充下,這裡不要用pow,自己手動模擬下,不然100  50這組資料過不了。

完整**:

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#pragma comment(linker, "/stack:102400000,102400000")

typedef long long ll;

typedef double db;

typedef unsigned uint;

typedef unsigned long long ull;

/** constant list .. **/ //

printf("%d\n" , temp % m);

/* int temp2=pow(m,cnt);

cout << m << " " << cnt << " " << temp2<< endl;

cout << temp2 <

2018 6 18 數學問題

define crt secure no deprecate 求正整數n的質因數的個數。120 2 2 2 3 5 所以最後輸出時5 10 9 n至多只存在乙個大於sqrt n 的素因數 這裡只需要篩選到100000就可以 通過素數表,不斷試除,最後求出各個冪指數的和 include 素數表找到10...

2018 6 18 數學問題

2 4 3 8 2 3 3 對分母n 和分子 a進行因子分解後,找到其對應的冪指數相除結果最小的即為最後結果 對n!分解素因數 計算n 中將有幾個p因子ans 計算n p,有n p個整數可以向n 提供乙個p因子 ans n p 計算n p p 有n p p 個整數可以向n 提供兩個因子,相較於上乙個...

基礎數學問題

要找出唯一單著的那個數,可以用異或的方式 我們已知 a a 0 對於存在偶數個的數字,遲早會互相抵消,奇數個的數字也會兩兩抵消,只剩下最後乙個答案。1 模擬 1.將數字轉換為2進製字串s1 itoa 2.補前導零,字串s2先存低位,再存高位 相當於交換 3.轉換為10進製輸出 atoi 注意 2 3...