?? 2674_1.cpp
字號:
//Accepted 2674 0MS 244K
#include<iostream>
#include<string>
using namespace std;
char s[1000];
void sw(char *list,int n)
{
int i,j;
for(i=0,j=n-1;i<j;i++,j--)
swap(list[i],list[j]);
}
int main()
{
int n,m,i,j,k,p,sum,t=0;
while(scanf("%d",&n)!=EOF)
{
if(n<41)
{
s[0]=1;
int i,j,p=0,sum,t=0;
for(j=1;j<=n;j++) //難點
{//j為每次要乘的數
for(i=0;i<=t;i++)//計算出結果的每一位
{//sum存放當前位的結果
sum=s[i]*j+p;
p=0;
if(sum>9)
{
s[i]=sum%10;
p=sum/10;
if(t==i)
{
t++;//t為結果長度
s[t]=0;//s[]存放結果
}
}
else
s[i]=sum;
}
}
for(i=t;i>=0;i--)
s[i] += '0';
s[t+1]='\0';
//sw(s,t+1);
int res = 0;
/*for(i = 0; s[i] != '\0'; i++)
res = (res*10+s[i]-'0')%2009;*/
for(i = t; i >=0; i--)
res = (res*10+s[i]-'0')%2009;
printf("%d\n", res);
}
else
printf("0\n");
}return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -