洛谷P1618 三连击(升级版)

洛谷P1478 陶陶摘苹果(升级版)

一只鶸的刷题记录

题目描述
 
将 1,2,…,9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出 No!!!。
 
输入格式
 
三个数,A,B,C。
 
输出格式
 
若干行,每行 3个数字。按照每行第一个数字升序排列。
 
输入输出样例
 
输入 #1
1 2 3
 
输出 #1
192 384 576
219 438 657
273 546 819
327 654 981

开始的时候想到P1008的题解第一篇的方法,只改了一下输入部分,然而最后一个样例死活过不了,下载了数据以后发现是输入输出都是123 456 789 。得,又是精度的问题,于是把比例转成double就过了。

https://www.luogu.com.cn/problemnew/solution/P1008

//暴力方法
//P1008中提到了这个判断条件的原理(if后面一大串),是整个代码的核心
#include <iostream>

using namespace std;

int main()
{
    int num1,num2,num3;
    cin>>num1>>num2>>num3;
    bool flag=0;
    int a,b,c;
    for(int i=123;i<333;i++)
    {
        a = i;
        b = double(num2)/num1*a;
        c = double(num3)/num1*a;
        if((a/100+a/10%10+a%10+b/100+b/10%10+b%10+c/100+c/10%10+c%10==1+2+3+4+5+6+7+8+9)&&((a/100)*(a/10%10)*(a%10)*(b/100)*(b/10%10)*(b%10)*(c/100)*(c/10%10)*(c%10)==1*2*3*4*5*6*7*8*9))
        {
            cout<<a<<" "<<b<<" "<<c<<endl;
            flag=1;
        }
    }
    if(flag==0)cout<<"No!!!"<<endl;
    return 0;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值