九度OJ 1076 N的阶乘 (模拟)

题目1076:N的阶乘

时间限制:3 秒

内存限制:128 兆

特殊判题:否

提交:5244

解决:1786

题目描述:

输入一个正整数N,输出N的阶乘。

输入:

正整数N(0<=N<=1000)

输出:

输入可能包括多组数据,对于每一组输入数据,输出N的阶乘

样例输入:
4
5
15
样例输出:
24
120
1307674368000
#include<stdio.h>
#include<string.h>
int result[10000];
int main(int argc, char *argv[])
{
    int n;
    while(~scanf("%d",&n))
    {
        memset(result,0,sizeof(result));
        result[0]=1;
        result[1]=1;
        for(int i=2;i<=n;++i)
        {
            for(int j=1;j<=result[0];++j)
                result[j]*=i;
            for(int j=1;j<=result[0];++j)
            {
                if(result[j]>=10){
                    result[j+1]+=result[j]/10;
                    result[j]=result[j]%10;
                    if(j==result[0])
                    {
                        result[0]++;
                    }
                }
            }
        }
        for(int i=result[0];i>=1;--i)
        {
            printf("%d",result[i]);
        }
        printf("\n");
    }
    return 0;
}
时间: 2024-07-29 07:52:19

九度OJ 1076 N的阶乘 (模拟)的相关文章

九度OJ 1067 n的阶乘 (模拟)

题目1067:n的阶乘 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5666 解决:2141 题目描述: 输入一个整数n,输出n的阶乘 输入: 一个整数n(1<=n<=20) 输出: n的阶乘 样例输入: 3 样例输出: 6 #include<stdio.h> unsigned long int a[21]; void init(){ a[0]=a[1]=1; } int main(int argc, char *argv[]) { int n; init(); wh

九度OJ 1083 特殊乘法 (模拟)

题目1083:特殊乘法 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2910 解决:2027 题目描述: 写个算法,对2个小于1000000000的输入,求结果. 特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5 输入: 两个小于1000000000的数 输出: 输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果. 样例输入: 123 45 样例输出: 54 简单模拟 #include<std

九度OJ 1065 输出梯形 (模拟)

题目1065:输出梯形 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3745 解决:2043 题目描述: 输入一个高度h,输出一个高为h,上底边为h的梯形. 输入: 一个整数h(1<=h<=1000). 输出: h所对应的梯形. 样例输入: 4 样例输出: **** ****** ******** ********** #include<stdio.h> void solve(int h){ int N=h+2*(h-1); int i=N-h; int j=0; i

九度OJ 1363 欢乐斗地主 (模拟,细心)

题目1363:欢乐斗地主 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:770 解决:175 题目描述: 如果大家玩过欢乐斗地主这个游戏,就一定知道有一个具有"提示"功能的按钮.如果你不知道你现在手里的牌有没有比上家大的牌,并且你也懒得去一张一张地看你手中的牌.这时候你就可以点"提示"按钮,系统会告诉你是否有这样的牌. 如果你是一个喜欢挑战的人,你就一定会想,能不能写一个程序,让它实现欢乐斗地主中的"提示"按钮的功能. 现在,我们把&

九度OJ 1062 分段函数 (模拟)

题目1062:分段函数 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2877 解决:1671 题目描述: 编写程序,计算下列分段函数y=f(x)的值. y=-x+2.5; 0<=x<2 y=2-1.5(x-3)(x-3); 2<=x<4 y=x/2-1.5; 4<=x<6 输入: 一个浮点数N 输出: 测试数据可能有多组,对于每一组数据, 输出N对应的分段函数值:f(N).结果保留三位小数 样例输入: 1 样例输出: 1.500 #include<s

九度OJ 1063 整数和 (模拟)

题目1063:整数和 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2973 解决:1921 题目描述: 编写程序,读入一个整数N. 若N为非负数,则计算N到2N之间的整数和: 若N为一个负数,则求2N到N之间的整数和 输入: 一个整数N,N的绝对值小于等于1000 输出: 测试数据可能有多组,对于每一组数据, 输出题目要求的值 样例输入: 1 -1 样例输出: 3 -3 #include<stdio.h> #include<stdlib.h> #include<

九度OJ 1334 占座位 (模拟 细心)

题目1334:占座位 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:737 解决:174 题目描述: sun所在学校的教室座位每天都是可以预占的. 一个人可以去占多个座位,而且一定是要连续的座位,如果占不到他所要求的这么多座位,那么他就一个座位也不要了.为了降低难度,每次分配座位按座位号从小到大查找,采用最先适配法分配座位. 输入: 输入有多组数据. 每组数据输入座位排数n,0<n<=100(座位的排列数相等,座位是按每行从左到右依次排序的),m( 0<m<=min(1

九度OJ 1021 统计字符 (模拟)

题目1021:统计字符 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4601 解决:2705 题目描述:     统计一个给定字符串中指定的字符出现的次数. 输入:     测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串.注意这里的字符串包含空格,即空格也可能是要求被统计的字符之一.当读到'#'时输入结束,相应的结果不要输出. 输出:     对每个测试用例,统计第1行中字符串的每个字符在第2行字符串中出现的次数

九度OJ 1549 货币问题 (模拟)

题目1549:货币问题 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:860 解决:476 题目描述: 已知有面值为1元,2元,5元,10元,20元,50元,100元的货币若干(可认为无穷多),需支付价格为x的物品,并需要恰好支付,即没有找零产生. 求,至少需要几张货币才能完成支付. 如,若支付价格为12元的物品,最少需要一张10元和一张2元,即两张货币就可完成支付. 输入: 输入包含多组测试数据,每组仅包含一个整数p(1<=p<=100000000),为需支付的物品价格. 输出