⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2674.cpp

📁 HDOJ2501-2681acm解题报告
💻 CPP
字号:
//老实算的 TLE
#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)
	{
		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);
	}return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -