请大侠帮我写或改个C++程序

2024-12-28 13:10:05
推荐回答(2个)
回答1:

满足条件的组合相当多:不过差值在15到33,概念很模糊,是大于15并且小于33还是大于等于15小于等于33.你可以根据你的需要修改程序中的条件判断。
c++代码:
#include
#include
using namespace std;
int main()
{
int a[5];
for(a[0]=1;a[0]<=35;a[0]++)
for(a[1]=a[0]+1;a[1]<=35;a[1]++)
for(a[2]=a[1]+1;a[2]<=35;a[2]++)
for(a[3]=a[2]+1;a[3]<=35;a[3]++)
for(a[4]=a[3]+1;a[4]<=35;a[4]++)
if(a[0]+a[1]+a[2]+a[3]+a[4]==114&&a[4]-a[0]>=15&&a[4]-a[0]<=33)
{
getch();//为了便于你观察结果,敲击一下回车输出一组,你也可以把这句删掉
cout< }
return 0;
}
C代码:
#include
#include
int main()
{
int a[5];
for(a[0]=1;a[0]<=35;a[0]++)
for(a[1]=a[0]+1;a[1]<=35;a[1]++)
for(a[2]=a[1]+1;a[2]<=35;a[2]++)
for(a[3]=a[2]+1;a[3]<=35;a[3]++)
for(a[4]=a[3]+1;a[4]<=35;a[4]++)
if(a[0]+a[1]+a[2]+a[3]+a[4]==114&&a[4]-a[0]>=15&&a[4]-a[0]<=33)
{
getch();//为了便于你观察结果
printf("%d+%d+%d+%d+%d=114\n",a[0],a[1],a[2],a[3],a[4]);
}
return 0;
}

回答2:

#include "iostream"
using namespace std;
int main(){
int cnt=0;//记录组合数;
for(int i=1;i<=20;i++) //满足这种条件平均值约为23,所以最小数<=20
for(int j=i+1;j<=26;j++) //同上
for(int k=j+1;k<=35;k++)
{ if(k-i<15&&k-i>33) break;
for(int a=k+1;a<=35;a++)
{ if(a-i<15&&a-i>33&&(i+j+k+a>=114)) break;
for(int b=a+1; b<=35;b++)
{ if(b-i<15&&b-i>33&&(i+j+k+a+b>=114)) break;
for(int c=b+1;c<=35;c++)
{ if((i+j+k+a+b+c==114)&&(c-i>=15&&c-i<=33)
{ cnt++;
cout<<这5个数值分别为: < }
}
}
}
return 0;
}