A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

叶落霞

初级黑马

  • 黑马币:31

  • 帖子:10

  • 精华:0

© 叶落霞 初级黑马   /  2018-5-19 00:43  /  778 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


import java.util.*;//导入工具包
public class textXD1{
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);//创建扫描仪
               
                System.out.println("本程序用于计算1~N之间的奇数和");
               
                int A = 1;
               
                int N = 0;
               
                while(A == 1){
                       
                        System.out.println("请输入N的值:");
                        N = sc.nextInt();
                        System.out.println("您输入的N的值为:"+N);
                        System.out.println("确认请输入“1”,修改请输入“0”。");
                        int userQueren = sc.nextInt();
                       
                        if(userQueren == 0 ){
                                A = 1;
                        }else{
                                A = 0;
                        }
                }
                System.out.println("已确认N值为:"+N);
               
                int C = 1; //初始化语句
                int sum = 0; //存钱罐
                while (C <= N){
                        if(C % 2 != 0){                                                                               
                                sum += C;                                                                                                              
                        }
                        C++;
                }
                System.out.println("1~"+N+"之间的奇数和为:"+sum);
        }
}

3 个回复

倒序浏览
如图, 当1000万以内求奇数和时,值为负值,是为何?

QQ截图20180519004411.png (17.39 KB, 下载次数: 7)

QQ截图20180519004411.png
回复 使用道具 举报
已经找到原因了,应为数据超出int 格式数据最大值, 吧sum定义为long 就可以了,如图。

QQ截图20180519022547.png (81.7 KB, 下载次数: 0)

QQ截图20180519022547.png
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马