PTA 7-6 计算阶乘和 (10分)

对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。

输入格式:

输入在一行中给出一个不超过10的正整数N。

输出格式:

在一行中输出S的值。

输入样例:

3

输出样例:

9

作者: 陈越

单位: 浙江大学

时间限制: 400 ms

内存限制: 64 MB

代码长度限制: 16 KB


 1 import java.io.BufferedReader;
 2 import java.io.IOException;
 3 import java.io.InputStreamReader;
 4 public class Main {
 5     public static void main(String[] args) throws IOException {
 6         BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
 7         String n=input.readLine();
 8         int rn=Integer.parseInt(n);
 9         int sum=0,a=1,k=1;
10         while(a<=rn){
11             sum+=k;
12             a++;
13             k=a*k;//一开始写的k*(k+1)是不对的,而且当时a++在这一行的后面。a和k是有关系的,但是两者的作用不一样。
14         }
15         System.out.print(sum);
16     }
17 }

重点是while内部。到底最少几个变量比较合适,变量与变量之间的逻辑关系要理清。

 

原文地址:https://www.cnblogs.com/Flyfishy/p/12250064.html

时间: 2024-07-31 02:20:03

PTA 7-6 计算阶乘和 (10分)的相关文章

分段计算居民水费 (10 分)

第2章-13 分段计算居民水费 (10 分) 为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3:超过后,y=2.5x?17.5.请编写程序实现水费的计算. 输入格式: 输入在一行中给出非负实数x. 输出格式: 在一行输出应交的水费,精确到小数点后2位. 输入样例1: 12 输出样例1: 16.00 输入样例2: 16 输出样例2: 22.50 代码 cost = lambda x:4*x/3 if x<=15

PTA 7-11 给出成绩等级 (10分)

编写一程序实现以下功能 从键盘输入一个一百分制成绩,如果不在0-100范围内,则要求重新输入数据,直到输入的数据在0-100范围内. 将输入的数据转换成等级‘A’,‘B’,‘C’,‘D’,‘E’,并输出.90分以上为‘A’,80-89分为‘B’,70-79分为‘C’, 60-69分为‘D’,60分以下为‘E’. 输入格式: 使用换行符作为输入数据分隔符 输出格式: 按照输出实例格式输出结果 输入样例: 103 55.3 输出样例: 在这里给出相应的输出.例如: score=55.3,grade=

7-52 计算球体积 (10 分)

输入半径,计算球的体积.球体积公式是4/3∏r**3 输入格式: 输入半径,可以是小数.输入提示为“r=”. 输出格式: 输出球的体积,结果保留3位小数,∏使用math库的常量. 输入样例: 在这里给出一组输入.例如: 2 输出样例: 在这里给出相应的输出.例如: v=33.510 输入样例: 在这里给出一组输入.例如: 3.33 输出样例: 在这里给出相应的输出.例如: v=154.675 import math r = float(input("r=")) v = 4/3*r**3

PTA 7-20 输出字母序列1 (10分)

编写一程序实现以下功能 从键盘读入一个字符cBegin和一个数iCount,要求输出≤cBegin的iCount个字符. 输入格式: 依次输入一个字符和一个整数 输出格式: 依次输出字符,字符之间无空格分隔 输入样例: M 8 输出样例: 在这里给出相应的输出.例如: MLKJIHGF 作者: 刘仕筠 单位: 成都信息工程大学 时间限制: 400 ms 内存限制: 64 MB 代码长度限制: 16 KB 1 import java.util.Scanner; 2 public class Mai

PTA 7-4 有重复的数据 (10分)

在一大堆数据中找出重复的是一件经常要做的事情.现在,我们要处理许多整数,在这些整数中,可能存在重复的数据. 你要写一个程序来做这件事情,读入数据,检查是否有重复的数据.如果有,输出“YES”这三个字母:如果没有,则输出“NO”. 输入格式: 你的程序首先会读到一个正整数n,1<=n<=100000.然后是n个整数. 输出格式: 如果这些整数中存在重复的,就输出: YES 否则,就输出: NO 输入样例: 5 1 2 3 1 4 输出样例: YES 作者: 翁恺 单位: 浙江大学 时间限制: 8

6-10 阶乘计算升级版(20 分)

6-10 6-10 阶乘计算升级版(20 分) 本题要求实现一个打印非负整数阶乘的函数. 函数接口定义: void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过1000.如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印"Invalid input". 裁判测试程序样例: #include <stdio.h> void Print_Factorial ( const int N ); int main()

9.9递归和动态规划(八)——给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法

/** * 功能:给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法. */ public static int makeChange(int n){ return makeChange(n,25); } /** * 递归的终止条件:完全简化为1分. * @param n * @param denom * @return */ public static int makeChange(int n,int denom){ int next_denom=0; switch(d

浙大版《C语言程序设计(第3版)》题目集 练习2-10 计算分段函数[1] (10 分)

练习2-10 计算分段函数[1] (10 分) 本题目要求计算下列分段函数f(x)的值: 输入格式: 输入在一行中给出实数x. 输出格式: 在一行中按"f(x) = result"的格式输出,其中x与result都保留一位小数. 输入样例1: 10 输出样例1: f(10.0) = 0.1 输入样例2: 0 输出样例2: f(0.0) = 0.0 思路:利用if-else语句将两种情况分开讨论.代码如下: #include <stdio.h> int main() { do

浙大版《C语言程序设计(第3版)》题目集 练习3-2 计算符号函数的值 (10 分)

练习3-2 计算符号函数的值 (10 分) 对于任一整数n,符号函数sign(n)的定义如下: 请编写程序计算该函数对任一输入整数的值. 输入格式: 输入在一行中给出整数n. 输出格式: 在一行中按照格式"sign(n) = 函数值"输出该整数n对应的函数值. 输入样例1: 10 输出样例1: sign(10) = 1 输入样例2: 0 输出样例2: sign(0) = 0 输入样例3: -98 输出样例3: sign(-98) = -1 思路:用if-else语句分三类情况讨论. 代