獎券數目
有些人很迷信數字,比如帶“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;
}