编写一个完整的 Java程序 MyOdd,输入正整数 n,输出 n以内的奇数之和。越简单越好~
4个回答
展开全部
用到循环的真的是初中没念好吧
连续和=(首项+末项)×项数÷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);
}
}
展开全部
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));
}
}
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));
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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值就是和啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询