题目:
编程,求出用1,2,5这三个数不同个数的组合的和为100的组合个数。
如:100个1是一个组合,5个1加19个5是一个组合
分析:
x+2y+5z = 100 (0≤x≤100,0≤y≤50,0≤z≤20)
3个变量,若确定了2个,则剩下的那个变量也就确定了不妨让某个变量为定值,考虑一个变量。(类似:偏导数)
x+2y= 100-5z,
z=0, x=100,98,96,…,0
z=1, x=95,93,91,…,1
……
z=19, x=5,3,1
z=20, x=0
solution = 100以内的偶数+95以内的奇数+…+5以内的奇数+1
n以内的奇数\偶数 = (n+2)/2
#include <iostream>
using namespace std;
//遍历
int solution1(int n)
{
int sum = 0;
for (int i = 0; i <=