本文主要是介绍3297:【例50.3】 平衡数《信息学奥赛一本通编程启蒙(C++版)》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
3297:【例50.3】 平衡数《信息学奥赛一本通编程启蒙(C++版)》
【题目描述】
平衡数:如果正整数 x 的每一位数字 d 恰好在 x 中出现了 d 次,则认为 x 是平衡数。例如 x=122,其中
对于百位数 d=1,其中 1 在 122 中总共出现了 1 次,符合条件;
对于十位数 d=2,其中 2 在 122 中总共出现了 2 次,符合条件;
对于个位数 d=2,其中 2 在 122 中总共出现了 2 次,符合条件;
因为 122的每一位都符合条件,所以 122是平衡数。
现在给出两个正整数l,r(l≤r),请帮忙求出l∼r中所有平衡数的和。
【输入】
输入共一行,两个以空格隔开的正整数 l,r(1≤l≤r≤10000)。
【输出】
输出共一行,一个整数,表示l∼r 中所有平衡数的和。
【输入样例】
1 25
【输出样例】
23
3297:【例50.3】 平衡数
#include<bits/stdc++.h>
using namespace std;
int main()
{int l,r,t,q,sum=0,flag;cin>>l>>r;for(int i=l;i<=r;i++){int a[10]={0};t=i;while(t>0){q=t%10;a[q]++;t=t/10;}flag=1;for(int j=0;j<10;j++){if((a[j]!=j&&a[j]!=0)||a[0]!=0){flag=0;break;}}if(flag==1)sum=sum+i;}cout<<sum;return 0;}
这篇关于3297:【例50.3】 平衡数《信息学奥赛一本通编程启蒙(C++版)》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!