jhxs422
(胡熹筱)
1
4. 金仙花数
题目ID:7954必做题100分
最新提交:0 分
历史最高:0 分
时间限制: 200ms
空间限制: 32768kB
题目描述
时间:0.2s 空间:32M
题目描述:
定义金仙花数 xx 满足以下性质:
xx 的各个数位之和大于等于 20,且 xx 的各个数位乘积大于等于 162 。
给定 nn ,求小于等于 nn 的金仙花数个数。
输入格式:
一个正整数 nn 。
输出格式:
一个数表示答案。
样例输入:
299
样例输出:
1
约定:
1<=n<=1000001<=n<=100000
2 个赞
高镜淞
(赤空霞染<-扶苏->長風血染)
4
这一题不是上一讲的吗?先把各位求出来,个位(n%10),十位(n/10),百位(n/100),加起来就行了,用while嵌套for就可以了.
2 个赞
核心代码(取位运算代码):
while((i2)!=0){
j*=(i2)%10;
k+=(i2)%10;
(i2)/=10;
}
1 个赞
何羽帆
(何羽帆)
27
//一个伪代码
#include<iostream>
using namespace std;
int main()
{
int n,x,b=0;//b用来存储金仙花数的个数
cin>>n;
for(x=1;x<=n;x++)
{
int sum=0,a=1;
int c=x;
while(c)
{
//数字和
//各位数字之积
c/=10;
}
if(sum>=20&&a>=162)
{
b++;
}
}
cout<<b;
return 0;
}