1173

2024-02-04 15:38
文章标签 1173

本文主要是介绍1173,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1173:阶乘和

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 6674 通过数: 3397
【题目描述】
用高精度计算出S=1!+2!+3!+…+n!(n≤50),其中“!”表示阶乘,例如:5!=5×4×3×2×1。

输入正整数n,输出计算结果S。

【输入】
一个正整数n。

【输出】
计算结果S。

【输入样例】
5
【输出样例】
153
提交 统计信息 提交记录

#include <iostream>#include <cstring>#include <algorithm>using namespace std;int a[501]={0,1},b[501],c[501]; // a数组用于计算阶乘(被加数) b数组:加数  c数组:计算每次累加和int lena=1,lenb=1,lenc=1;int main(){int n;cin>>n;for(int i=1;i<=n;i++)  //计算n次{for(int j=1;j<=lena;j++)  // 13~25行:计算每个数的阶乘结果{a[j]*=i;}for(int k=1;k<=lena;k++){if(a[k]>9){a[k+1]+=a[k]/10;a[k]%=10;if(k==lena)  lena++;}}int x=0,w=1;  // 27~37行计算每个阶乘每次累加和while(w<=lena || w<=lenb){c[w]+=a[w]+b[w]+x;x=c[w]/10;c[w]%=10;w++;}c[w]=x;if(c[w]==0) w--;lenc=w;memcpy(b,c,sizeof(c));  // 每次求和后把结果重新赋给b数组,和下一个阶乘重新计算lenb=lenc;  // 同时把长度也赋给b数组memset(c,0,sizeof(c));    // c数组这时要清零}for(int i=lenb;i>=1;i--)  // 倒序输出最后结果{cout<<b[i];}cout<<endl; return 0;    }

这篇关于1173的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677986

相关文章

XTOJ 1173 Five Tiger

OJ题目:click here ~~ AC_CODE int grid[6][6];int dawuhu(){return grid[1][1]&& grid[1][5]&& grid[5][1]&& grid[5][5]&& grid[3][3];}int wuhu(){int ret = 0;for(int i = 1;i <= 3;i++)for(int j = 1;j <=

1173字符逆序

题目描述 将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 输入 输入包括一行。  第一行输入的字符串。 输出 输出转换好的逆序字符串。 示例输入 I am a student 示例输出 tneduts a ma I #include<stdio.h>#include<string.h>void main(){int i=0

力扣740删除并获得整数和力扣1173第N个泰波那契数

力扣740删除并获得整数 给你一个整数数组 nums ,你可以对它进行一些操作。 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。 开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。 示例 1: 输入:nums = [3,4,2] 输出:6 解释: 删除

【图像重建】基于matlab主成分分析图像压缩重建【含Matlab源码 1173期】

⛄一、获取代码方式 获取代码方式1: 完整代码已上传我的资源:【图像重建】基于matlab主成分分析图像压缩重建【含Matlab源码 1173期】 点击上面蓝色字体,直接付费下载,即可。 获取代码方式2: 付费专栏Matlab图像处理(初级版) 备注: 点击上面蓝色字体付费专栏Matlab图像处理(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab图像处理(初级版)

1173:阶乘和

通过代码: #include <bits/stdc++.h>using namespace std;int n, a[100001] = {1, 1}, b[100001], sum[100001] = {1, 1};void Mult(int k) {if(k > n) return;memset(b, 0, sizeof(b));for(int i = 1; i <= a[0]; i

LintCode 1173. 反转字符串 III JavaScript算法

描述 给定一个字符串句子,反转句子中每一个单词的所有字母,同时保持空格和最初的单词顺序。 说明 字符串中,每一个单词都是由空格隔开,字符串中不会有多余的空格。 样例 输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 解析 这种题目现在一行代码完全搞得定 reverseWords=s=>s.spl

sincerit 1173 采矿

1173 采矿 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5344 Accepted Submission(s): 2475 Special Judge Problem Description 某天gameboy玩魔兽RPG。有一个任务

ZZULI_SUMMER_PRACTICE(7)nbsp;1173

采矿 Time Limit: 10000/5000 MS (Java/Others)     Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 678     Accepted Submission(s): 375 Special Judge Problem Description 某天game