日常思維練習 2

2021-07-26 19:53:27 字數 1302 閱讀 5185

n個骰子扔在地上,所有骰子朝上點數之和為s,輸入n列印出s的所有可能的值出現的概率

個人解答

#include 

using

namespace

std;

void getsum(int n, int sum, int *arr)//運用遞迴

}else

}}void printresult(int* arr, int n)

if (n == 1)

}else

//n>1

for (int i = n; i <= 6 * n; ++i)

}}int main()

printresult(arr, n);

delete arr;

return

0;}

更高效率,使用迴圈避免了重複運算:

//基於迴圈效率更高

void printprobability(int number)

int flag = 0;

for (int i = 1; i <= 6; ++i)

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

for (int i = k; i <= 6 * k; ++i)

}flag = 1 - flag;

}double total = pow((double)6, number);

for (int i = number; i <= 6 * number; ++i)

delete pprobabilities[0];

delete pprobabilities[1];

}

2.撲克牌的順子問題

大王小王做任意數字(0代替)

1.統計0的數目

2.統計間隔總數

3.比較間隔總數與0的數目的大小,若是間隔總數小於0的數目則是順子否則不是

ps:除了0有相等的對子則不可能是順子

3.約瑟夫環問題

思路一:直接用迴圈鍊錶即可,這個我做過很多遍了,也是常用方法不再多做贅述

思路二:

運用數學思路找出函式關聯

此時空間複雜度o(1)時間複雜度o(n)

4.在加減乘除都不准使用的情況下完成加法

//考慮用位運算,當兩者相加無進製則成功完成相加

int add(int num1, int num2)

while (num2 != 0);

return num1;

}

日常練習 算

問題背景 zhx幫他妹子做數學題。問題描述 求 如 n 3,m 3,這個值為1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 56。輸入格式 僅一行,包含兩個數 n和 m.輸出格式 僅一行,包含所求的答案 mod10 9 7的值。樣例輸入 3 3 樣例輸出 資料範圍與規定 對於...

日常練習(1)

在實際應用中有這樣乙個場景 有m臺伺服器,有n個任務,需要把這n個任務按一定策略分配給m臺伺服器來執行,請按以下要求實現該場景 1.使用list列表代表伺服器 列表中每個元素為乙個ip位址 2.使用list列表代表任務 列表中每個元素為任務id 3.分配的過程就是把ip位址與任務id對映上的過程 4...

日常練習 MAximum Profit

問題介紹 外匯交易可以通過兌換不同國家的貨幣以賺取匯率差。比如一美元兌換100日元時候購入1000美元,然後等匯率變動到一美元兌換108日元時再賣出,這樣就可以賺取1000 108 100 8000日元。現在請將某貨幣在 t 時刻的 rt t 0 1 2 3 4 n 1 作為輸入資料。計算 差rj ...