0
已解决
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=n;i>=0;i--){
for(int j=n;j>=0;j--){
for(int k=n;k>=0;k--){
if(((i+j)%2==0)&&((j+k)%3==0)&&((i+k)%5==0)){
cout<<i+j+k<<" "<<i<<" "<<j<<" "<<k;
break;
}
}
}
}
return 0;
}
只有可怜的10分~
“为什么break没有用?”来自蒟蒻的疑问
0
已采纳
他说要和最大,所以要定义一个S,初值为0,用a,b,c记录i,j,k
将
if(((i+j)%2==0)&&((j+k)%3==0)&&((i+k)%5==0)){
cout<<i+j+k<<" "<<i<<" "<<j<<" "<<k;
break;
}
改为
if(!((i+j)%2)&&!((j+k)%3)&&!((i+k)%5)&&i+j+k>=s){
s=i+j+k;
a=i;
b=j;
c=k;
}
最后输出
cout<<s<<" "<<a<<" "<<b<<" "<<c;
望采纳
0
