返回题解分享
讨论 / 题解分享/ 帖子详情

特别数的和(编程题) - 题解

这道题比较容易理解



* 核心就是取该数的最后一位进行判断即mod运算,如果不是再 / 运算去除该数当前的最后一位再回到mod 运算。。。。循环判断。

#include<bits/stdc++.h>

using namespace std;

int n;
int sum;

bool check(int x){
	while(x){  //只要数中除首位不是0外,其他位有一位是 0、1、2、9 即可  
		if(x%10 <= 2 || x%10 == 9)  //数位分离判断每一位上是否含有2, 0, 1, 9中的数字
			return true;
		x/=10;   // 若当前位数字不符合条件,使用x /= 10将x除以10并取整,丢弃最低位数字。如:25 :25%10=5 不满足,然后25/10=2再进入if判断 
	}
	return false;
}
int main(){
	cin>>n;
	
	for(int i=1;i<=n;i++)
		if(check(i)) 
			sum+=i;
			
	cout<<sum<<endl;
	return 0;
}
0 回复 0 转发 1 喜欢 0 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!