藍橋杯 獎券數目

獎券數目

有些人很迷信數字,比如帶“4”的數字,認爲和“死”諧音,就覺得不吉利。
雖然這些說法純屬無稽之談,但有時還要迎合大衆的需求。某抽獎活動的獎券號碼是5位數(10000-99999),要求其中不要出現帶“4”的號碼,主辦單位請你計算一下,如果任何兩張獎券不重號,最多可發出獎券多少張。

請提交該數字(一個整數),不要寫任何多餘的內容或說明性文字。

答案:52488
思路:

方法1:這個可以直接寫10000-99999的循環,逐一枚舉

方法2:寫5層循環,每層循環代表每位數

方法一參考代碼:

#include<iostream>
#include<sstream>
#include<string>
using namespace std;
int main()
{
	int cnt = 0, flag = 0;//計數
	string s;
	for (int i = 10000; i <= 99999; i++)
	{
		flag = 0;
		stringstream ss;
		ss << i;
		ss >> s;
		for (int j = 0; j < s.length(); j++)
		{
			if (s[j] == '4')
			{
				flag = 1;
				break;
			}
		}
		if (flag == 0)
			cnt++;
	}
	cout << cnt;
    return 0;
}

方法二參考代碼:

#include<iostream>
using namespace std;
int main()
{
	int cnt = 0;
	for (int a = 1; a <= 9; a++)
	{
		if (a != 4)
			for (int b = 0; b <= 9; b++)
			{
				if (b != 4)
					for (int c = 0; c <= 9; c++)
					{
						if (c != 4)
							for (int d = 0; d <= 9; d++)
							{
								if (d != 4)
									for (int e = 0; e <= 9; e++)
									{
										if (e != 4)
											cnt++;
									}
							}
					}
			}
	}
	cout << cnt << endl;
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章