60分求助大佬!!

P1618 三连击(升级版)

aciel @ 2023-01-12 00:33:30

#include <stdio.h>
int main()
{
    int a,b,c;
    int cnt=0;
    scanf("%d %d %d",&a,&b,&c);
    for(int i=123;i<333;i++){
        if(i%a==0){//整除
            int j=i/a*b;//按比例计算
            int k=i/a*c;

            int n=i/100+i/10%10+i%10+j/100+j/10%10+j%10+k/100+k/10%10+k%10;
            int m=(i/100)*(i/10%10)*(i%10)*(j/100)*(j/10%10)*(j%10)*(k/100)*(k/10%10)*(k%10);

            if(n==(1+2+3+4+5+6+7+8+9) && m==(1*2*3*4*5*6*7*8*9)){
                cnt++;
                printf("%d %d %d\n",i,j,k);
            }
        }
    }
    if(cnt==0){
        printf("No!!!\n");
    }
    return 0;
}

by Joker_lazydoghead @ 2023-01-12 14:07:58

!不是英文的+没有判断是否为0

Code:

#include <stdio.h>
int main()
{
    int a,b,c;
    int cnt=0;
    scanf("%d %d %d",&a,&b,&c);
    if((a==0||b==0||c==0)||(c>333&&c<400)){
        printf("No!!!\n");
        return 0;
    }
    for(int i=123;i<333;i++){
        if(i%a==0){//整除
            int j=i/a*b;//按比例计算
            int k=i/a*c;

            int n=i/100+i/10%10+i%10+j/100+j/10%10+j%10+k/100+k/10%10+k%10;
            int m=(i/100)*(i/10%10)*(i%10)*(j/100)*(j/10%10)*(j%10)*(k/100)*(k/10%10)*(k%10);

            if(n==(1+2+3+4+5+6+7+8+9) && m==(1*2*3*4*5*6*7*8*9)){
                cnt++;
                printf("%d %d %d\n",i,j,k);
            }
        }
    }
    if(cnt==0){
        printf("No!!!\n");
    }
    return 0;
}

by aciel @ 2023-01-13 00:22:02

感谢!!!


by DINGYURS @ 2023-01-28 18:20:49

@aciel 输入789 456 123 时,这个代码有问题


by DINGYURS @ 2023-01-28 18:27:42

@DINGYURS 对不起,原来A<B<C


|