ZZULIOJ 1056 幸运数字问题

题目描述

小明对某些数字有偏爱,例如,他喜欢7的倍数,而不喜欢4的倍数,如果一个整数是7的倍数,而不是4的倍数,小明会认为这个数字是他的幸运数字。现在给定两个整数m和n,请你帮小明找m到n范围内的最大的幸运数字。如果m到n范围内没有幸运数字,则输出“no”

输入

两个正整数m和n (m < =n,且均小于10的9次方)

输出

一个整数,即m到n范围内的最大的幸运数字。

样例输入 Copy

90 100

样例输出 Copy

98
我第一次写的,错了的代码:

#include<stdio.h>
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\n",max);
    else
        printf("no\n");

    return 0;
}

改过后运行正确的代码:

#include<stdio.h>
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\n",max);
    else
        printf("no\n");

    return 0;
}

所以一定要注意限定条件
相对简化一点的方法:

#include<stdio.h>
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;
}
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值