土仙花数
题目描述:
定义土仙花数为各个数位乘积与该数本身的差的绝对值不超过 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; }