为了帮助很多想搞算法但又害怕自己搞不定的孩子们,老师付准备了200个入门的逻辑练习题,在这200个逻辑练习题下可以加强你们的基础算法能力,以次为基础当面对正式的算法题目的时候可以得心应手的面对。
题目:
输入一个数n,计算1到n(包含n)之间有多少个奇数、多少个偶数。
先输出奇数数量,后输出偶数数量。
输入样例1:11
输出样例1:6 5
数据范围:1-10^15
分析:
这个范围要求很大,那么类型肯定得用long类型。看情况计算。暴力肯定能行,就是会超时。
暴力编码:(大概处理10亿还是可以的)
package com.item.action;
import java.util.Scanner;
/**
*
* @author hongmuxiangxun 红目香薰 付文龙 老师付 laoshifu
*
*/
public class demo12 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
long l = sc.nextLong();
sc.close();
long countOne=0;//奇数
long countTwo=0;//偶数
for (long i = 1; i <=l; i++) {
if(i%2==0) {
countTwo++;
}else {
countOne++;
}
}
//只能处理10亿左右
System.out.println(countOne+" "+countTwo);
}
}
找规律编码:(处理long值内所有值)
package com.item.action;
import java.util.Scanner;
/**
*
* @author hongmuxiangxun 红目香薰 付文龙 老师付 laoshifu
*
*/
public class demo12 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
long l = sc.nextLong();
sc.close();
long countTwo=l/2;//偶数
long countOne=countTwo;//奇数
if(l%2==1) {
countOne++;
}
System.out.println(countOne+" "+countTwo);
}
}