QAQ的幸运数字 数学
QAQ的幸運(yùn)數(shù)字
Time Limit:?1000MS?Memory Limit:?65536KB Submit?StatisticProblem Description
金牌巨 QAQ 經(jīng)??繚q人品 (Rising RP) 來?A 題。他的幸運(yùn)數(shù)字是 4 和 7,因此他也經(jīng)常在第 4 發(fā)或第 7 發(fā)提交時過題(誤)。
一天,突 (xian) 發(fā) (de) 奇 (wu) 想 (liao) 的 QAQ 定義了一種新的數(shù)叫「厲害了我的金桔數(shù)」,指只含有且必須同時含有 4 和 7 的數(shù)。栗如:47, 747?是「厲害了我的金桔數(shù)」,而 2333, 666, 457, 777 就不是「厲害了我的金桔數(shù)」。
現(xiàn)在,他想知道在位數(shù)不超過 n 的正整數(shù)內(nèi),有多少個數(shù)是「厲害了我的金桔數(shù)」。
PS:由于「厲害了我的金桔數(shù)」實(shí)在是太多啦,QAQ 決定,所有的結(jié)果都需要?膜?(模) QAQ 自己,即計算結(jié)果需要對?816581 取模(取余)。
Input
輸入數(shù)據(jù)有多組(數(shù)據(jù)組數(shù)不超過 10000),到 EOF 結(jié)束。
每組輸入為一行,包含一個正整數(shù) n (1 <= n <= 10000)。
Output
對于每組輸入,輸出一行,包含一個整數(shù),表示在位數(shù)不超過 n 的正整數(shù)內(nèi)「厲害了我的金桔數(shù)」的個數(shù),結(jié)果需要對?816581 取模。
Example Input
1 2 3Example Output
0 2 8Hint
如果你的結(jié)果不是一步得出的,那么你可能需要在每一步運(yùn)算時都進(jìn)行一次取模操作。
n = 3 時,不超過 3 位的「厲害了我的金桔數(shù)」共有 8 個,分別為:47, 74, 447, 474, 477, 744, 747, 774。
Author
(a+b)%maxn=(a%maxn+b%maxn)%maxn;
(a-b)%maxn=(a%maxn-b%maxn+maxn)%maxn;
(a*b)%maxn=(a%maxn*b%maxn)%maxn;
#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=816581;
int a[10100];
int pow(int a,int n)
{
? int p=1;
? while(n--)
? {
? ? p=(p*a)%maxn;
? }
? return p;
}
void display()
{
? ? a[1]=0;
? ? a[2]=2;
? ? for(int i=3;i<=10000;i++)
? ? {
? ? ? ?a[i]=(a[i-1]%maxn+(int)pow(2,i)%maxn-2+maxn)%maxn;
? ? }
}
int main()
{
? ?int n;
? ?display();
? ?while(cin>>n)
? ?{
? ? ? printf("%d\n",a[n]);
? ?}
? ?return 0;
}
總結(jié)
以上是生活随笔為你收集整理的QAQ的幸运数字 数学的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node.js工程的结构
- 下一篇: 数据结构前缀,后缀,中缀表达式