我如何使程序执行一个新的或重复的操作,或要求用户再次输入一个数字,并知道它的阶乘。
import java.util.Scanner;
public class Loops {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int num, num2 = 1, x, i;
System.out.println("-------------Factorial Calculator-------------");
System.out.print("Enter a positive integer: ");
num = input.nextInt();
if (num > 0) {
System.out.print(num + "! = ");
for (i = 1; i <= num; i++) {
if(i < num){
System.out.print(i + " x ");
num2 = num2 * i;
}
if(i == num){
System.out.print(i);
num2 = num2 * i;
System.out.println("\nThe factorial of " + num + " is " + num2);
System.out.println();
}
}
}else if (num < 0) {
System.out.println("Please input a valid integer. Program stopped.");
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
boolean runMore = true;
while(runMore){
int num, num2 = 1, x, i;
System.out.println("-------------Factorial Calculator-------------");
System.out.print("Enter a positive integer: ");
num = input.nextInt();
if (num > 0) {
System.out.print(num + "! = ");
for (i = 1; i <= num; i++) {
if(i < num){
System.out.print(i + " x ");
num2 = num2 * i;
}
if(i == num){
System.out.print(i);
num2 = num2 * i;
System.out.println("\nThe factorial of " + num + " is " + num2);
System.out.println();
}
}
}else if (num < 0) {
System.out.println("Please input a valid integer. Program stopped.");
}
System.out.println("Want to contine : Enter '1' for yes and '0' for no");
int wantToContinue = input.nextInt();
if(wantToContinue==0){
runMore = false;
}
}
}
}
使用while
循环
import java.util.Scanner;
public class Loops {
static boolean readInput = true;
public static void main(String[] args) {
while(readInput) calculateFactorial();
}
}
private static void calculateFactorial() {
Scanner input = new Scanner(System.in);
int num, num2 = 1, x, i;
System.out.println("-------------Factorial Calculator-------------");
System.out.print("Enter a positive integer: ");
num = input.nextInt();
if(num <= 0) {
readInput = false;
return;
}
if (num > 0) {
System.out.print(num + "! = ");
for (i = 1; i <= num; i++) {
if(i < num){
System.out.print(i + " x ");
num2 = num2 * i;
}
if(i == num){
System.out.print(i);
num2 = num2 * i;
System.out.println("\nThe factorial of " + num + " is " + num2);
System.out.println();
}
}
}else if (num < 0) {
System.out.println("Please input a valid integer. Program stopped.");
}
}
将计算阶乘的代码放在一个单独的方法中,并在main()的循环中调用它。
import java.util.Scanner;
public class Loops {
public static void printFactorial(int num) {
int i = 0;
int num2 = 0;
if (num > 0) {
System.out.print(num + "! = ");
for (i = 1; i <= num; i++) {
if(i < num){
System.out.print(i + " x ");
num2 = num2 * i;
}
if(i == num){
System.out.print(i);
num2 = num2 * i;
System.out.println("\nThe factorial of " + num + " is " + num2);
System.out.println();
}
}
}else if (num < 0) {
System.out.println("Please input a valid integer. Program stopped.");
}
}
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int num = 0;
System.out.println("-------------Factorial Calculator-------------");
while ( true ) {
System.out.print("Enter a positive integer: ");
num = input.nextInt();
printFactorial(num);
}
}
}
问题内容: 我正在尝试计算阶乘产生的数字的尾随零(这意味着数字变得很大)。以下代码采用一个数字,计算该数字的阶乘,并计算尾随零。但是,当数字大约为25!时,numZeros将不起作用。 我并不担心这段代码的效率,并且我知道有多种方法可以使这段代码的效率更好。我要弄清楚的是为什么计数大于25的数字结尾的零!不管用。 有任何想法吗? 问题答案: 您的任务不是计算阶乘,而是计算零的数量。一个好的解决方案
本文向大家介绍Java算法之递归算法计算阶乘,包括了Java算法之递归算法计算阶乘的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享的java算法计算阶乘,在学习Java课程时经常会遇到求阶乘问题,今天接跟大家一起探讨一下 代码如下: 运行结果:
问题内容: 我正在快速计算阶乘的函数。像这样 该函数可以计算到20。 我认为阶乘(21)的值大于UINT64_MAX。 那么该如何计算21!(21阶乘)迅速? 问题答案: 无符号64位整数的最大值为18,446,744,073,709,551,615。虽然21!=51,090,942,171,709,440,000。对于这种情况,您需要一个Big Integer类型。我在Swift中发现了一个关于
本文向大家介绍用C ++计算阶乘中的位数,包括了用C ++计算阶乘中的位数的使用技巧和注意事项,需要的朋友参考一下 给我们一个整数值,任务是首先计算一个数字的阶乘,然后计算结果中的总位数。 什么是阶乘数 数字的阶乘是通过将数字中的数字相乘,同时将数字的值减1来计算的。它由符号“!”表示 即0!,1!,2!,3!,5!,....等 0阶乘!和1!始终为1。 例如 说明-由于阶乘值6是720并且包含3
我试图计算阶乘中尾随零的数量。 我认为尾随零的数量不正确。 使用计数(30)时,30中有7个尾随的0。然而,它正在返回6。
我遇到了一个问题,需要计算非常大的阶乘的值。我用两种不同的方法在C中解决了这个问题,但只想知道我的复杂性分析是否准确。 在任何一种方法中,我都将非常大的数字表示为向量,其中表示最低有效数字,最后一个索引处的值表示最高有效数字。版本1的代码可以在这个要点中找到。 给定上面的代码,似乎是其中是给定的整数,是向量表示的数字。我的逻辑是,我们将执行一些与结果数字的长度成比例的步骤,以便生成一个表示的向量。