问题标题: 酷町堂:1247 数字游戏

0
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
我要回答