ZZZULIOJ 1056ラッキーデジタル問題


タイトルの説明
明ちゃんはいくつかの数字に偏愛しています.例えば、彼は7の倍数が好きで、4の倍数が好きではありません.もし1つの整数が7の倍数で、4の倍数ではありません.明ちゃんはこの数字が彼のラッキーな数字だと思っています.2つの整数mとnを指定します.明ちゃんにmからnの範囲内の最大のラッキーな数字を探してください.mからnの範囲内にラッキーな数字がない場合は「no」を出力します
入力
2つの正の整数mおよびn(m<=nであり、いずれも10未満の9乗)
しゅつりょく
整数、すなわちmからnの範囲内の最大のラッキーな数字です.
サンプル入力Copy
90 100
サンプル出力Copy
98私が初めて書いた、間違ったコード:
#include
int main()
{
    int m,n,i,find,max;

    scanf("%d%d",&m,&n);
    for(i=m;i<=n;i++)
    {
        if(i%7==0&&i%4!=0)
        {
            max=i;
            find=1;
        }
    }
    if(find==1)
        printf("%d
"
,max); else printf("no
"
); return 0; }

変更後、正しいコードを実行します.
#include
int main()
{
    int m,n,i,find=0,max;

    scanf("%d%d",&m,&n);
    if(m<=n&&m<1e10)
    {
        for(i=m;i<=n;i++)
        {
            if(i%7==0&&i%4!=0)
            {
                max=i;
                find=1;
            }
        }
    }
    if(find==1)
        printf("%d
"
,max); else printf("no
"
); return 0; }

限定条件を比較的簡略化する方法に注意してください.
#include
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    int c=0;
    for(;b>=a;b--)
    {
      if(b%7==0&&b%4!=0)
      {
        printf("%d",b);
        c++;
        break;
      }
    }
    if(c==0) printf("no");
    return 0;
}