【无标题】

文章描述了一道编程题目,要求计算在1到n之间,所有能被5整除且至少含有一位数字5的整数的数量。解决方案包括将整数转换为字符串,然后遍历检查每个数位。
摘要由CSDN通过智能技术生成

题目描述

第三阵,缘,妙不可言
守阵大将乃不可言不忍视不能说不能看的妙啊和尚,他坚信能被5整除且至少有一位数字是5的所有整数都是他的倒霉数字。
从键盘上输入一个整数n,请你找出1~n中能被5整除且至少有一位数字是5的整数的个数.
这个数字对妙啊和尚将造成绝死效果。

输入格式

第一行,一个整数n

数据范围

数据保证n<32767

输出格式

一个整数sum。表示1到n之间能被5整除且至少有一位数字是5的整数个数。

样例输入

9999

样例输出

1271

思路分析 

本题没有思路分析。

AC代码

#include<bits/stdc++.h>//万能头
using namespace std;//标准空间命名
int yes5(int n){//写一个自定义函数
    int flag=0;//为下面做一个反空行报错做一个变量
    if(n%5==0){//判断这个数能不能被5整除
        flag=1;//做反空行报错处理
    }else{//否则(有没有都行)
        return 0;//返回零(有没有都行)
    }//格式处理(有没有都行)
    string s=to_string(n);//把这个数变成字符串,以便后面处理
    int len=s.size();//获取字符串长度
    for(int i=0;i<=len;i++){//循环
        if(s[i]=='5'){//判断这个数位上有没有5
            return 1;//输出1(也可以是flag)
        }//格式处理
    }//格式处理
    return 0;//如果数位上没有5就返回0
}//格式处理
int main(){//主函数   
    int n;//创建变量
    cin>>n;//获取变量
    int cnt=0;//创建一个用来存储数量的变量
    for(int i=1;i<=n;i++){//循环遍历
        cnt+=yes5(i);//加上1(之所以不用判断是不是0,是因为加0不加都一样,0表示没有)
    }//格式处理
    cout<<cnt;//输出
    return 0;//养成好习惯
}//格式处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值