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 ...