统计一个数中0-9的出现次数:
#include <bits/stdc++.h>
using namespace std;
int cnt[10];
int main()
{
int n;
cin >> n;
while(n)
{
int x = n%10;
cnt[x]++;
n/=10;
}
for(int i = 0 ; i < 10; i++)
cout << i << " " << cnt[i] << endl;
}
// 统计某一个数出现的次数,
#include <bits/stdc++.h>
using namespace std;
const int N = 100010;//这个数最大不超过N;
int cnt[N];
int main()
{
int n;
cin >> n;
int a[n];
for(int i = 0 ; i < n ; i++)
cin >> a[i];
sort(a, a+n);
for(int i =0 ; i < n ; i ++)
cnt[a[i]]++;
cout << "-----------" << endl;
for(int i = 0 ; i < n ;i ++)
{
if(a[i]!=a[i+1])
cout << a[i] << " " << ": " << cnt[a[i]] << endl;
}
}
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int n;
bool check(int x)
{
LL sum = 0;
LL cp = x;
while(x)
{
int t = x%10;
x/=10;
sum+=pow(t, n);
}
if(sum==cp) return true;
return false;
}
int main()
{
cin >> n;
for(LL i = pow(10,n-1); i < pow(10, n); i ++ )
{
if(check(i))
cout << i << endl;
}
}
在比较的时候注意那个扣位数的时候就已经把x最后置为0了
所以要拷贝一下数然后进行比较;