编写一个完整的 Java程序 MyOdd,输入正整数 n,输出 n以内的奇数之和。越简单越好~

 我来答
gdmmd
2013-06-08 · TA获得超过1279个赞
知道大有可为答主
回答量:1581
采纳率:66%
帮助的人:1019万
展开全部

用到循环的真的是初中没念好吧

连续和=(首项+末项)×项数÷2,计算中关键要注意项数
若n为偶数,则奇数和=(1+n-1)*(n/2)/2=(n^2)/4                   表示4分之n方
                      偶数和=(2+n)*(n/2)/2=(n^2)/4 +n/2
若n为奇数,则奇数和=(1+n)*((n+1)/2)/2=((n+1)^2)/4       表示4分之(n+1)方
                      偶数和=(2+n-1)*((n-1)/2)/2=((n+1)^2)/4 +(n-1)/2

 

MyOdd.java

 package com.kidd;
import java.util.Scanner;
public class MyOdd {
 /**
  * 输入正整数 n,输出 n以内的奇数之和。越简单越好
  * 
  * @param args
  */
 public static void main(String[] args) {
  System.out.print("输入一个正整数n:");
  Scanner sc = new Scanner(System.in);
  int n = 0; // 运算用
  long sum = 0; // 记录计算结果
  n = sc.nextInt() - 1;
  if (n <= 1) {
   /**
    * 先运算特殊情况下的结果
    */
   sum = 0;
  } else if (n % 2 == 0) {
   sum = n * n / 4;
  } else {
   sum = (n + 1) * (n + 1) / 4;
  }
  System.out.println(n + "以内的奇数之和为:" + sum);
 }
}
百度网友1d2cb591
2013-06-08 · 超过15用户采纳过TA的回答
知道答主
回答量:29
采纳率:42%
帮助的人:13.9万
展开全部
public class MyOdd {
public int MyOdd(int n){
int sum = 0;
for(int i=1;i<=n;i++){
if(i%2!=0){
sum+=i;
}
}
return sum;
}
public static void main(String[] args) {
MyOdd m1 = new MyOdd();
System.out.print(m1.MyOdd(8));
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
矢风快乐
2013-06-07 · TA获得超过991个赞
知道小有建树答主
回答量:632
采纳率:100%
帮助的人:327万
展开全部
public int MyOdd(int n) {
  int max = (n%2==1) ? n : n-1;
  int sum = 0;
  for(int i=1; i<=max; i=i+2){
   sum += i;
  }
  return sum;
 }
追问
import java.unit.*;

public class demo22 {
public static void main(String[] args) {
int n;
int sum=0;
Scanner in=new scanner(System.in);
for(int i=0;i<=n;i++){
if(n%2==1){
sum++;
}
System.out.print(sum);
}
}
} 求帮改
追答
public static void main(String[] args) {

  int sum = 0;

  Scanner in = new Scanner(System.in);

  int n = in.nextInt();

  int max = (n % 2 == 1) ? n : n - 1;

  for (int i = 1; i <= max; i = i + 2) {

   sum += i;

  }

  System.out.print(sum);

 }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ansiansi
2013-06-07 · TA获得超过294个赞
知道小有建树答主
回答量:650
采纳率:0%
帮助的人:385万
展开全部
	public int Myodd(int n){
int sum = 0;
for(int i=1;i<=n;i++){
if(i%2!=0){
sum+=i;

}

}
return sum;
}
追问
import java.unit.*;
public class demo22 {
public static void main(String[] args) {
int n;
int sum=0;
Scanner in=new scanner(System.in);
for(int i=0;i<=n;i++){
if(n%2==1){
sum++;}
System.out.print(sum);
}
}

} 求帮改
追答

就调上面的方法就可以了啊

Scanner in=new scanner(System.in);
in.nextInt();就是键盘输入的数字,然后调用那个方法返回的int值就是和啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式