K好数

K好数

题目描述

当且仅当一个数的每一位都不超过k时,称这个数是“k好数”。
给定n和k,输出1到n中有多少个数是“k好数”。

输入

输入只有一行,包含2个用空格隔开的整数n和k。

输出

输出只有一行,包含1个整数,表示1到n中“k好数”的个数。

样例输入

25 3

样例输出

11

提示

1到25中11个“k好数”分别为1,2,3,10,11,12,13,20,21,22,23。

对于50%的数据,1≤n≤1000。
对于100%的数据,1≤n≤1000000,1≤k≤9。

解题思路:

因为感觉写的代码, 思路清晰,代码一流,所以写篇题解hhhh

枚举1~n中的数,写一个函数判断这些数 是否每一位都不超过k。

AC代码:

#include <iostream>
using namespace std;
int n,k,res=0;

bool fun(int i)
{
	while(i)
	{
		int t=i%10;
		
		if(t>k)
		return false;
		
		i/=10;
	}
	return true;
	
}

int main()
{
	
	cin>>n>>k;
	
	for(int i=1;i<=n;i++)
	{
		if(fun(i))
		res++;
	}		
	cout<<res;
	
} 

版权声明:本文为qq_46009744原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。