- 平衡数
思路
- 2025-1-22 14:18:24 @
/*
想判断一个数是不是平衡数 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
- 上传者