zoukankan      html  css  js  c++  java
  • 0058-简单的阶乘

    题目

    简单的阶乘
    难度级别:A; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
    试题描述

    从键盘上输入一个自然数 n ,输出 n 的阶乘,即 n!。n!=1*2*3*……*n,特殊的,当 n=0 时,n!为 1 。

    输入
    一个不超过 12 的自然数 n
    输出
    一个正整数,表示 n!的值。
    输入示例
    5
    输出示例
    120

    分析

        这题是累加的升级版,但注意事项变多了:

            1.0的阶乘是1。

            2.ans初始值必须给1,不管全局还是局部,全局不赋一,任何数的阶乘都是0。局部不赋1,输出的数吓死你。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int n,ans=1;//ans别忘了初始值给1,不然任何数的阶乘都是0,同时也能保证n=0时,n!=1。
    int main()
    {
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++) ans*=i;//累乘。
    	printf("%d",ans);
    	return 0;
    }
    

        除以上正解代码外,本题还可以使用平方和公式求解,不知道平方和公式的上网百度。

        下面介绍一种令新手们无比佩服的方法:打表(注意不是坐出租车)。

        打表,专门针对一些数据范围较小的题。一般使用打表的有以下两种情况:

            1.没有思路。

            2.自己的方法会超时。

        下面讲如何打表。

        首先,你需要算出数据范围内每个输入所对应的答案。一般采用手算+计算器。

        对于这道题,上网百度12以内阶乘,再用swich打表就行。

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int main()
    {
    	scanf("%d",&n);
    	switch(n)
    	{
    		case 1:printf("1");break;//开始打表。
    		case 2:printf("2");break;
    		case 3:printf("6");break;
    		case 4:printf("24");break;
    		case 5:printf("120");break;
    		case 6:printf("720");break;
    		case 7:printf("5040");break;
    		case 8:printf("40320");break;
    		case 9:printf("362880");break;
    		case 10:printf("3628800");break;
    		case 11:printf("39916800");break;
    		case 12:printf("479001600");
    	}
    	return 0;
    }
    

        很神奇是不是?

    作者:18西斯光剑
    出处:https://www.cnblogs.com/DARTH-VADER-EMPIRE/
    Copyright ©2018-2020 18西斯光剑
    All Rights Reserved.
  • 相关阅读:
    POJ 1469 COURSES 二分图最大匹配
    POJ 1325 Machine Schedule 二分图最大匹配
    USACO Humble Numbers DP?
    SGU 194 Reactor Cooling 带容量上下限制的网络流
    POJ 3084 Panic Room 求最小割
    ZOJ 2587 Unique Attack 判断最小割是否唯一
    Poj 1815 Friendship 枚举+求最小割
    POJ 3308 Paratroopers 最小点权覆盖 求最小割
    1227. Rally Championship
    Etaoin Shrdlu
  • 原文地址:https://www.cnblogs.com/DARTH-VADER-EMPIRE/p/9552749.html
Copyright © 2011-2022 走看看