首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Java中打印出回文的总和?

如何在Java中打印出回文的总和?
EN

Stack Overflow用户
提问于 2016-02-26 11:10:06
回答 3查看 884关注 0票数 0

我在不使用ant string方法而只使用数学方法的情况下打印出回文的总和时遇到了麻烦。我已经知道了如何计算和和所有的东西,但是当我尝试打印出和时,它会给我一个包含所有数字的列表。例如,对于数字11,输出为this 1 3 6 10 15 21 28 36 45 55 66

我想知道如何只打印最后一个数字66,这是数字1到11的总和,以及如何让程序打印出"1到11“,因为这些数字是用户使用scanner方法输入的。在我的代码下面,我已经包含了我的输出应该是什么样子。非常感谢!

代码语言:javascript
代码运行次数:0
运行
复制
import java.util.Scanner;

public class Palindrome {
    public static void main (String args []) {
        System.out.println("Please enter an integer > 0:");
        Scanner keyboard=new Scanner(System.in);
        int palindrome=keyboard.nextInt();
        int palindrome1=palindrome;
        int num;
        int sum;

        int rev=0;
        if (palindrome<=0) {
            System.out.println("Sorry, you must enter an integer greater than zero.");
        }


        while (palindrome!=0) {
            rev=rev*10 + palindrome % 10;
            palindrome/=10;
            System.out.println("the integer "+palindrome1+ " is a palindrome");
        }
        if (palindrome1==rev) {
            System.out.println("palindrome");
        } else {
            System.out.println("not");
        }
        num=1;
        sum=0;
        while (num<=palindrome1) {
            sum=sum+num;
            num++;
            System.out.println(sum);
        }
    }
}

输出应如下所示:

请输入一个大于0: 11的整数。该整数11是回文。从1到11的数字之和是66

EN

回答 3

Stack Overflow用户

发布于 2016-02-26 11:16:37

您可以始终使用描述从0到n的数字之和的通用数学规则:

这也更简单,因为您不必真正担心在循环中累加值的问题。

在您的场景中,为了打印值,您需要做的就是计算这个值。

简化后,它将是:

代码语言:javascript
代码运行次数:0
运行
复制
System.out.println((n*n) - n))/2);

或者,如果您只想打印要添加的最后一项,则仅在循环完成后打印。

票数 3
EN

Stack Overflow用户

发布于 2016-02-26 11:32:52

以下是一些建议:

您可以使用Makoto上面所述的规则来简化连续整数的和。

在确认整型变量是回文变量之前,将其命名为“palindrome”可能会让人感到困惑。

第24行的语句似乎放错了位置。

您已经表示不希望在每次循环迭代时都打印总和,因此您可能希望将最后一个println移到while循环之外。

票数 0
EN

Stack Overflow用户

发布于 2016-02-26 11:24:14

将最后一个while循环更改为:

代码语言:javascript
代码运行次数:0
运行
复制
while (num<=palindrome1){

sum=sum+num;
System.out.println(num);
num++;

    }
    System.out.println(sum);
    } 
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35642707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档