数を推測する:1から100までの正の整数の場合、数の残りを3、4、および7で割って、数が何であるかを推測します。

これは、学校のACMプラットフォームに関する質問です。以前にこの問題に遭遇し、アルゴリズムの設計方法がわからなかったため、csdnで同様の記事を見つけました。コードは非常に短いですが、アルゴリズムは少し難しく、理解しにくい数学的なスキルが必要です。アルゴリズムはより少ないスペースで説明されます。
以下は私が書いたコードです。アイデアはとてもシンプルです。forループを使用して1つずつ判断し、条件が満たされた場合に出力します。同時に、フラグを使用して1回記録します。すべての番号を1つずつチェックし、flag = 0の場合、適格な番号が見つからないことを意味します。

質問:
1から100までの正の整数の場合、数値を3、4、および7で割った残りを与え、この数値が何であるかを推測します。数字を3、4、7で割った残りの3つを1行に入力します。答えが一意の場合は、コンピューターが推測した整数を1行で出力します。答えが一意でない場合は、この条件を満たす各整数をセミコロンで区切って1行に出力します(最後の整数の後にセミコロンもあります)。一致する整数がない場合は、「解なし」を出力します。
サンプル入力
1 0 5
サンプル出力
40;
コードの実装:

#include<stdio.h>
int main()
{
    
    
    int t, f, s, i = 1,sum = 0;
    int flag = 0;
    scanf("%d%d%d", &t, &f, &s);
    for (i; i <= 100; i++)
    {
    
    
        if (i % 3 == t && i % 4 == f && i % 7 == s)
        {
    
    
            printf("%d;", i);
            flag = 1;
        }
        else
        {
    
    
            flag = 0;
        }
        sum += flag;
    }
    if (sum == 0)
    {
    
    
        printf("no solution");
    }

    return 0;
}

初めてブログを書く際に、間違いがありましたらご了承ください。

おすすめ

転載: blog.csdn.net/qq_46541463/article/details/105398914