蓝桥杯2015年(第6届)省赛b组c/c++ 奖券数目

奖券数目

有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。

请提交该数字(一个整数),不要写任何多余的内容或说明性文字。
 

分析:有两种方法,直接看代码吧

答案:52488

方法一:

#include <iostream>
using namespace std;
bool f(int n)
{
	while(n>0)
	{
		int t=n%10;
		n/=10;
		if(t==4)
			return false;
	} 
	return true;
}
int main()
{
	string s;
	int ans=0;
	for(int i=10000;i<=99999;i++)
	{
		if(f(i))
			ans++;
	}
	cout<<ans<<endl;
	return 0;
} 

方法二:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
void itos(int &x,string &s)
{
	stringstream  ss;
	ss<<x;
	ss>>s;
}
int main()
{
	string s;
	int ans=0;
	for(int i=10000;i<=99999;i++)
	{
		itos(i,s);
		if(s.find("4")==string::npos)
			ans++;
	}
	cout<<ans<<endl;
	return 0;
} 
发布了80 篇原创文章 · 获赞 3 · 访问量 922

猜你喜欢

转载自blog.csdn.net/qq_40570410/article/details/105458078