手动输入两个数字m和n,运算求出m~n之间所有偶数的和

//没有学习排序之前的做法,最原始的想法,分别讨论了m和n中小的数为偶数或奇数的情况,显得

//代码臃肿,并且没有效率,也很复杂晦涩。

import java.util.Scanner;

public class Try {

public static void main(String[] args){

Scanner sc=new Scanner(System.in);

int sum=0;

System.out.println("输入整数m");

int m=sc.nextInt();

System.out.println("输入整数n");

int n=sc.nextInt();

if(m%2==0&&m<n){

for(int i=m+2;i<n;i+=2){

sum+=i;

}

System.out.println(sum);//当m<n且m为偶数的情况下,让循环变量从比m大的偶数开始,同时                   //使循环变量小于n并让循环变量每次自增2,得到m和n之间的偶数和。

}

else if(m%2!=0&&m<n){

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

sum+=i;

}

System.out.println(sum);//当m<n且m为奇数的情况下,让循环变量从比m大的偶数开始,同时                    //使循环变量小于n并让循环变量每次自增2,得到m和n之间的偶数和。

}

else if(n%2!=0&&m>n){

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

sum+=i;

}

System.out.println(sum);//当m>n且n为偶数的情况下,让循环变量从比n大的偶数开始,同时                   // 使循环变量小于m并让循环变量每次自增2,得到m和n之间的偶数和。

}

else{

for(int i=n+2;i<m;i+=2){

sum+=i;

}

System.out.println(sum);//当m>n且n为奇数的情况下,让循环变量从比n大的偶数开始,同时                    //使循环变量小于m并让循环变量每次自增2,得到m和n之间的偶数和。

}

}

}

//随着后面的学习 这题换另一种思路做。

import java.util.Scanner;

public class Try {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

int sum=0;

System.out.println("请输入数m:");

int m=sc.nextInt();

System.out.println("请输入数n:");

int n=sc.nextInt();

if(m>n){    //默认m<n,如果输入的数字m>n 就让m和n交换位置,把小的数放在前面。

int temp=0;

m=temp;

n=m;

temp=n;

}

for(int i=m;i<=n;i++){

if(i%2==0){

sum+=i;

}

}

System.out.println("m~n之间所有偶数的和为"+sum);

}

}

时间: 2024-12-14 12:40:08

手动输入两个数字m和n,运算求出m~n之间所有偶数的和的相关文章

java循环练习:用户输入一个10以内的数字,通过运算求出该数字的阶乘

package practiceGO; import java.util.Scanner; /*  * 4.用户输入一个10以内的数字,通过运算求出该数字的阶乘  */ public class Cto { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个10以内的数字,由系统计算阶乘"); int num = sc.nextIn

输入两个实数,用一个函数求出它们之和

/*p180 例7.4 输入两个实数,用一个函数求出它们之和 解题思路:首先要定义add函数,它为float型,它应有两个参数,也应为float型. 特别注意:要对add函数进行声明.*/ #include<stdio.h>int main(){ float add(float x,float y); //对add函数作声明 float a, b, c; printf("please enter a and b:"); //提示输入 scanf("%f,%f&qu

一个数组中所有的数都是成对出现的只有一个或者两个数字是单独的,求这个数

如果只有一个数,那么我们可以用按位亦或(^)来得到,代码如下: #include<stdio.h> int main() { int arr[] = { 1, 1, 2, 2, 3, 3, 4 }; int size = sizeof(arr) / sizeof(int); int num = 0; for (int i = 0; i < size; i++) { num ^= arr[i]; } printf("%d\n", num); system("p

18.n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 当一个数字删除后,从被删除数字的下一个继续删除第m个数字。 求出在这个圆圈中剩下的最后一个数字。

转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4263868.html 声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,本文的思想也许有所借鉴,但源码均为本人实现,如有侵权,请发邮件表明文章和原出处地址,我一定在文章中注明.谢谢. 题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字). 当一个数字

相机位姿估计3:根据两幅图像的位姿估计结果求某点的世界坐标

关键词:相机位姿估计,单目尺寸测量,环境探知 用途:基于相机的环境测量,SLAM,单目尺寸测量 文章类型:原理说明.Demo展示 @Author:VShawn @Date:2016-11-28 @Lab: [email protected] 目录 <相机位姿估计0:基本原理之如何解PNP问题> <相机位姿估计1:根据四个特征点估计相机姿态> <相机位姿估计1_1:OpenCV:solvePnP二次封装与性能测试> <相机位姿估计2:[应用]实时位姿估计与三维重建相

Java算法——求出两个字符串的最长公共字符串

问题:有两个字符串str1和str2,求出两个字符串中最长公共字符串. 例如:“acbbsdef”和"abbsced"的最长公共字符串是“bbs” 算法思路: 1.把两个字符串分别以行和列组成一个二维矩阵. 2.比较二维矩阵中行和列对应的每个点的字符是否相同,是设置这个点为1,否设置这个点为0. 3.通过查找值为1的最长对角线来找到最长公共字符串. 通过上面str1和str2两个字符串,分别得出以行和列组成的一个二维矩阵如下图: 从上图可以看到,str1和str2共有3个公共子串&qu

shell两个数字的运算,一共三个变量

#!/bin/bash #两个数运算的简单脚本 22 + 33 ,一共三个参数 echo $# #对获取的参数以此判断是否包含[a-zA-Z]的东西,如果包含就退出.因为数字相加不是数字就是加减乘除 for i_args in "[email protected]" do echo $i_args if [[ ${i_args} =~ [a-zA-Z]+ ]];then echo "contain illegal character" exit 1 fi done

在一个数组中除两个数字只出现1次外,其它数字都出现了2次

前面总结了leecode上,改为成3出现,只有1个出现1次,的是通过记录每个位的个数来实现的如果count%3=1则为1,否则为0,实现起来充分利用了位运算. 编程之美上的,没有写过,今天写一下. http://blog.csdn.net/morewindows/article/details/8214003这个博客是MVP的博客,我自己也写一遍,其实核心就是 两个数的异或为1,只有1,0疑惑才为1,所以分离这两个数到不同的区间.对如何寻找1的位置做了优化(x&-x) #include<io

数组中只出现一次的两个数字

题目:给定一个整型数组,其中有两个数字只出现一次,其余的数字都出现两次,找出这两个只出现一次的数字.时间复杂度为O(n),空间复杂度为O(1). 异或运算的特性:相等的两个整数异或的结果为0:一个整数与0进行异或运算的结果为其本身. 基本思想:将这两个只出现一次的数字分到两个数组中,这样就很容易找到只出现一次的数字. 采用上述思想需要解决的问题: 1.如何才能保证两个只出现一次的数字分别位于两个数组? 2.空间复杂度为O(1),需要在原数组上进行分割操作,这个如何做到? 解决办法: 1.将数组中