2019-08-15

洛谷P1618
|q天边的风

|原创


#include<bits/stdc++.h>

using namespace std;

int main()

{

    int A,B,C,flag=0;//首先是flag的使用,用flag标记很方便,它可以标记一个或多个数,也可以标记数组元素,只要它能//粘上去的都能被标记。

    int i1,i2,i3;

    cin>>A>>B>>C;

    for(int i=1; i<=999; i++)//其实999这个范围还能被优化的,但是一时半会我没想出来。

    {

        i1=i*A;

        i2=i*B;

        i3=i*C;

        if((i1/100+i1/10%10+i1%10+i2/100+i2/10%10+i2%10+i3/100+i3/10%10+i3%10==45)&&((i1/100)*(i1/10%10)*(i1%10)*(i2/100)*(i2/10%10)*(i2%10)*(i3/100)*(i3/10%10)*(i3%10)==362880))//这个判断条件我以前真的没接触过过,我觉得一个程序的判断条件完全可作为评判一个程序简易好坏依据。这个就是根据如果n个数相加与相乘的结果与预期的值相等,那么这n个数就是我们想要确定的这n个数。nice!

        {

            cout<<i1<<" "<<i2<<" "<<i3<<endl;//在cout中不加" "它是不会自己分配空格的,endl的作用是换行作用。

            flag=1;//用flag的目的就是以防程序找不到符合条件的数,用if语句会太过冗余。flag就是优化版的if。

        }

    }

    if(flag==0){

        cout<<"No!!!";

    }

    return 0;

}

//这个三连击的程序总的来说还是比较简洁了,角度也比较独特。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容