问题标题: 酷町堂:3903 吉利数之和

0
0
已解决
李牧晓
李牧晓
中级天翼
中级天翼

#include<bits/stdc++.h>
using namespace std;
bool flag;
int sum;
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        if(i%5==0){
            sum+=i;
        }
        else{
            while(i!=1){
                if(i%10==5){
                    sum+=i;
                    flag=1;
                    break;
                }
                else{
                    i/=10;    
                }
            }
        }
    }
    cout<<sum;
    return 0;
}

**循环了,求解,求核心
 


0
已采纳
潘艺博
潘艺博
初级天翼
初级天翼

函数:

如果(x取5的余数(x%5)==0)  return 1;//是5的倍数,与5相关

while(x){//循环取位数

         定义 s=x%10;//x%10表示这一位数字

        如果(s等于5) return 1;//虽然它不是5的倍数,但如果这一位是5,它也与5相关,返回1

        x/=10;

    }

return 0;//如果一直没返回,它就不与5相关,返回0

0
0
0
潘艺博
潘艺博
初级天翼
初级天翼

写函数,先判断x是不是5的倍数,是就直接返回1(与5相关),否则循环取位数,如果s=5,说明x虽然不是5的倍数,但它也与5相关,返回1,如果一直都没有返回1,则返回0(与5不相关)

主函数里的不用细说吧,循环+判断,输出sum

望采纳~

0
刘艺凡
刘艺凡
资深守护
资深守护

@李牧晓 把sum定义成long long型就能对了。

我要回答