土仙花数

题目描述:

定义土仙花数为各个数位乘积与该数本身的差的绝对值不超过 k 的数。

给定n,k,求不大于 n 的正整数中,土仙花数的个数。

输入格式:

两个正整数:n和 k 。

输出格式:

一个整数表示答案。

样例输入1:

10 1

样例输出1:

9

约定:

1<=n<=10000

1<=k<=200

#include<bits/stdc++.h>
using namespace std;
int fzm(int m){
    int a[5]={0};
    int n=m;
    int k=1;
    int b[5]={0};
    for(int i=0;i<=5;i++){
        a[i]=n%10;
        if(n>0&&a[i]>=0){
            b[i]=1;
        }
        n=n/10;
    }
    for(int i=0;i<=5;i++){
        if(b[i]==1){
            k=k*a[i];
        }
    }
    return k;
}
int main(){
    int n,k,ans=0;
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        int l=fzm(i);
        int m1=abs(l-i);
        if(m1<=k){
            ans++;
        }
    }
    cout<<ans<<endl;
}
原文地址:https://www.cnblogs.com/fangzm/p/13687157.html