/*
想判断一个数是不是平衡数  x  
如果正整数 x 的每一位数字 d 恰好在 x 中出现了 d 次,则认为 x 是平衡数
i  = l~r 
x = i ;
能知道x中每位数字 出现的次数  
计数数组 int arr[15]={0}; //初始化都是0  
 每一个从l~r的数都应该有它自己的计数数组 
	while(x>0){  //拆分x然后统计x中每一个数出现的次数 
		arr[x%10]++;
		x/=10;
	}
	还得看每个出现的数要跟次数 一一对应 
	x = i; 从新拿一次当前的i
	int flag = 1; //1表示都出现了 
	while(x>0){ 
		if(x%10 != arr[x%10]){
			flag = 0;
		}
		x/=10;
	}
	if(flag==1){
		sum+=i;
	}
*/
#include <bits/stdc++.h>
using namespace std;

int main(){
	int l,r,sum=0;
	cin>>l>>r;
	for(int i=l;i<=r;i++){
		int x = i;
		int arr[15]={0};
		while(x>0){  //拆分x然后统计x中每一个数出现的次数 
			arr[x%10]++;
			x/=10;
		}
		x = i; 
		int flag = 1; //1表示都出现了 
		while(x>0){ 
			if(x%10 != arr[x%10]){
				flag = 0;
			}
			x/=10;
		}
		if(flag==1){
			sum+=i;
		}	
	}
	cout <<sum;
	return 0;
}

0 条评论

目前还没有评论...

信息

ID
158
时间
1000ms
内存
256MiB
难度
6
标签
递交数
43
已通过
13
上传者