0
已解决
鲍纪元
高级守护
高级守护
#include<iostream>
using namespace std;
int main()
{
int a,b,c;
int a1=0,b1=0,c1=0;
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
if(a+b%2==0)
{
a1=a+b;
}
if(b+c%3==0)
{
b1=b+c;
}
if(a+c%5==0)
{
c1=a+c;
}
}
cout<<a1+b1-b<<" "<<a1-b<<" "<<b1-c<<" "<<c1-a;
return 0;
}
鲍纪元在2018-01-31 21:17:09追加了内容
求大神指点!
代码!代码!代码!
我急呀!
0
已采纳
于子轩
初级守护
初级守护
for(int a=0;a<=n;a++)
for(int b=0;b<=n;b++)
for(int c=0;c<=n;c++)
{
if((a+b)%2==0&&(b+c)%3==0&&(a+c)%5==0&&a+b+c>=max)
{
max=a+b+c;
x=a;
y=b;
z=c;
}
}
0
0
臧启亚
初级光能
初级光能
你只用一重循环考虑不到每一种情况,具体思路如下:
用一个三重循环,把a,b,c值的所有情况根据题目中的条件进行判断,若符合条件,记录每一次相加的值并互相比较。最后用max存下最大的值,三个其他变量存下a,b,c的值。
核心代码如下:
for(int a=0;a<=num;a++){
for(int b=0;b<=num;b++){
for(int c=0;c<=num;c++){
if((a+b)%2==0&&(b+c)%3==0&&(a+c)%5==0&&a+b+c>max){
//(a+b)%2==0表示a与b的和为2的倍数,(b+c)%3==0表示b与c的和为3的倍数,(a+c)%5==0表示a与c的值为5的倍数
//a+b+c>max表示a与b与c的和大于之前满足条件的a,b,c的和
max=a+b+c;
a2=a;
b2=b;
c2=c;
//如果满足条件就用max存更大的值,a2,b2,c2分别存相加最大的a,b,c的值
}
}
}
}
0