问题描述
求出 1∼n 范围内的整数,使其数字之和为 13,请问这样的数有多少个?
例如:数 8585 ,其数字之和为 8+5=13 ;数 373,其数字之和为 3+7+3=13。
输入
一个整数 n(n≤10000000n≤10000000);
输出
输出一个整数,代表符合条件数的总个数。
样例
输入
复制
1000
输出
复制
75
普通做法
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int ans=0;//答案
for(int i=1;i<=n;i++){
//不能直接拆i
int ci=i;//备份
int sum=0;//ci的数位之和
//拆分模板
while(ci!=0){
sum+=ci%10;
ci/=10;
}
if(sum==13){
ans++;
}
}
cout<<ans;
return 0;
}
函数做法
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int ans=0;//答案
for(int i=1;i<=n;i++){
//不能直接拆i
int ci=i;//备份
int sum=0;//ci的数位之和
//拆分模板
while(ci!=0){
sum+=ci%10;
ci/=10;
}
if(sum==13){
ans++;
}
}
cout<<ans;
return 0;
}
点赞!关注!推广!