首页 > 编程语言 >题目 1014: [编程入门]阶乘求和

题目 1014: [编程入门]阶乘求和

时间:2023-04-06 09:26:22浏览次数:37  
标签:int 编程 求和 unsigned long 1014 Sn 阶乘

求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。

 

1.因为这是阶乘求和,一般的int 类型可能就不够,因此我们利用long long int 类型(不用unsigned long 因为当n为20时,Sn =2561327494111820313)

了,unsigned long的范围不够。

2.求Sn的和,我·用的是两个for循环嵌套

for (int i = 1; i <= n; i++)
    {
        j = 1;   //要在外面for循环执行完一次就初始化一次,要不就带入了内层for循环的值
        for(int m = 0; m < i; m++)  
            j *= (m + 1);    //求出第n个数的n的阶乘
        Sn = Sn + j;  //依次加上阶乘数
    }

3还可以把我这两个for嵌套变为一个

for (int i = 1; i <= n; i++)
    {
        t *= i;
        sum += t;
    }

最终代码

#include <stdio.h>
int main(void)
{
    int n;
    long long Sn = 0, j=1;
     
    scanf("%d", &n); 
     
    for(int i=1;i<=n;i++)
    {
        j=j*i;
        Sn=Sn+j;
    }
    // for (int i = 1; i <= n; i++)
    // {
    //     j = 1;
    //     for(int m = 0; m < i; m++)
    //         j *= (m + 1);
    //     Sn = Sn + j;
    // }
    printf("%lld", Sn); //long long的格式指定符为%lld
    return 0;
}

 

标签:int,编程,求和,unsigned,long,1014,Sn,阶乘
From: https://www.cnblogs.com/su-1007/p/17291618.html

相关文章

  • 题目 1013: [编程入门]Sn的公式求和
    求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。例如,n=5时=2+22+222+2222+22222,n由键盘输入。#include<stdio.h>intmain(){intn,i,sum=0,c=0;scanf("%d",&n);for(i=0;i<n;i++){sum*=10;sum=sum+2;c......
  • 第十七篇 HTML5 脚本编程
    bycaixin深圳跨文档消息传递跨文档消息传送(cross-documentmessaging),有时候简称为XDM,指的是在来自不同域的页面间传递消息。例如,www.wrox.com域中的页面与位于一个内嵌框架中的p2p.wrox.com域中的页面通信跨文档消息传递简称XDM,指不同域的页面间传递消息,XDM的核心是......
  • 方法定义,Date和JSON对象,及JavaScript式面向对象编程
    一.方法1.方法的定义 方法就是把函数放在对象里面,对象有两个东西:属性和方法通过对象名.方法名()使用a.第一种方法定义<script>varsetFun={name:"maming",birth:2002,//方法:被包含在对象之中age:function(){varnow=ne......
  • Rust编程语言入门之项目实例:- 命令行程序
    项目实例:-命令行程序一、实例:接收命令行参数本章内容12.1接收命令行参数12.2读取文件12.3重构:改进模块和错误处理12.4使用TDD(测试驱动开发)开发库功能12.5使用环境变量12.6将错误消息写入标准错误而不是标准输出创建项目~/rust➜cargonewminigrepCre......
  • 实验3 函数应用编程
    1.实验任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain(){int......
  • CUDA编程入门
    一、CUDA编程模型 1.CUDA程序执行流程  2.CUDA核函数kernel  3.CUDA程序层次结构kernel/Grid——>Block——>WARP——>Thread 上图中一个Kernel/Grid包含2×3个Block,一个Block包含3×5个线程     4.CUDA内置变量      二、向......
  • 实验三 函数应用编程
    task1.c#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain()......
  • 实验3 函数应用编程
    实验任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明int......
  • PTA基础编程——6-8简单阶乘计算
    本题要求实现一个计算非负整数阶乘的简单函数。函数接口定义:intFactorial(constintN);其中N是用户传入的参数,其值不超过12。如果N是非负整数,则该函数必须返回N的阶乘,否则返回0。裁判测试程序样例:#include<stdio.h>intFactorial(constintN);intmain(){   int......
  • Javascript模块化编程(三):require.js的用法
    这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战。我采用的是一个非常流行的库require.js。一、为什么要用require.js?最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分......