不是VIP会员,不能显示答案

题目解答

题目:
(数位和的幂问题)定义一个数是好数, 当且仅当这个数至少包含两位数,且等于它本身在十进制下所有数位之和的若干次幂。形式化地,设ds(x)表示x在十进制下的所有数位之

和,则x是好数当且仅当x≥10且存在正整数k使得(ds(x))^k=x。例如ds(512)=8, 8^3=512,

所以512是一个好数。

给定n (1000<=n<=10^18),求不超过n的所有好数,按升序输出,每个数一行。

#include<iostream>

#include<vector>

#include<algorithm>

long long ds(long long x)

{

if (x<=9) return x;

else return __(1)__;

}

const int dslim=18*9;

int main() {

long long n;

std::cin>>n;

std::vector<long long> ans;

for (long long i=2; i<=dslim; i++)

{

long long t=i;

while(__(2)__)

{

__(3)__;

if(__(4)__)

ans.push_back(t);

}

}

__(5)__;

for (auto x:ans) std::cout<<x<<std::endl;

return 0;

}


选择题

1) ⑴处应填( )。

2) ⑵处应填( )。

3) ⑶处应填( )。

4) ⑷处应填( )。

5) ⑸处应填( )。
考点:
分析:
解答:
评论:
老师: