用c语言或者c++编程

将十元钱兑换成一元,五角,一角的硬币,共计40枚,计算有多少中兑换方法

#include<bits/stdc++.h> 
using namespace std;
int cnt;
int main(){
    for(int i=1;i<=40;i++){ //枚举x 
        for(int j=1;j<=80;j++){ //枚举y 
            for(int k=1;k<=400;k++){ //枚举z 
                int sum=i+0.5*j+0.1*k;
                if(sum==10&&(i+j+k)==40){
                    cnt++;
                    cout<<i<<' '<<j<<' '<<k<<endl;
                }
            }
        }
    }
    /*时间复杂度O(n)=40*80*400=1280000<10.0E+9(10的9次方)
       可以1秒出答案。
     */ 
    cout<<cnt;
    return 0;
}

穷举
令1元=x枚
令0.5元=y枚
令0.1元=z枚

x+y+z=40
x+0.5y+0.1z=10

3个for循环,穷举就可以了

x的取值范围 0-40
y 0-80
z 0-400