zoukankan      html  css  js  c++  java
  • 洛谷 P1008 三连击

                  

            用1,2,……,9组成的三位数,已得知最小数为123;最大为987。因为组成的三个三位数要满足1:2:3的关系,若987占其中3份,

    则一份为987/3,也就是329。所以,用for循环的话,只用定义i(占一份的数)从123到329循环。(若i>329,则占三份的数3i>987,不符合题意)

            我的先将三个数定义为 i,2i,3i。这样就先满足了三个数的比例关系。我之后就没什么好办法,让i从123到329循环一次,定义一个一维数组,分别存储每组数据中每个数各个数位上的数。

            再判断各个数位上的数相加是否为45(1+2+3+......+9),这样也有很多例外,所以我又判断了一次各个数位相乘是否为1*2*3*......*9的值,若两项都符合,则输出。

     1 #include<iostream>
     2 using namespace std;
     3 int main()
     4 {
     5     int a,b,c,x[10],s=0,d=1;
     6     for(int i=123;i<=329;++i)
     7     {
     8         a=i;
     9         b=2*i;
    10         c=3*i;
    11         x[1]=a%10;
    12         x[2]=a/10%10;
    13         x[3]=a/100;
    14         x[4]=b%10;
    15         x[5]=b/10%10;
    16         x[6]=b/100;
    17         x[7]=c%10;
    18         x[8]=c/10%10;
    19         x[9]=c/100;
    20         for(int j=1;j<=9;++j)
    21         {
    22             s+=x[j];
    23             d*=x[j];
    24         }
    25         if(s==45 && d==1*2*3*4*5*6*7*8*9){
    26           cout<<a<<" "<<b<<" "<<c<<endl;}
    27         s=0;
    28         d=1;
    29     }
    30     return 0;
    31 }

    最终代码  ☝ ☝ ☝ ㊤ ㊤ ㊤ ↑ ↑ ↑

            

  • 相关阅读:
    string.Join()用法
    从List分组后重新组织数据
    Java学习笔记05--字符串
    Java学习笔记03--判断与循环语句
    Java学习笔记04--数组
    Java学习笔记02--运算符、表达式
    Java学习笔记01--数据类型
    Spring面试问答
    115个Java面试题和答案——终极列表(下)
    115个Java面试题和答案——终极列表(上)
  • 原文地址:https://www.cnblogs.com/zkw666/p/12252515.html
Copyright © 2011-2022 走看看