码迷,mamicode.com
首页 > 编程语言 > 详细

云课堂javaweb微专业Java基础测试题3

时间:2016-04-09 01:39:11      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

第3章编程题

1、奇偶个数(5分)

题目内容:

你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。

 

输入格式:

一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。

 

输出格式:

两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。

 

输入样例:

9 3 4 2 5 7 -1 

 

输出样例:

4 2

时间限制:500ms内存限制:32000kb

技术分享
 1 import java.util.Scanner;
 2 
 3 public class Main {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         Scanner in = new Scanner(System.in);
 8         int inNum = in.nextInt();
 9         int oddNum=0;
10         int evenNum=0;
11         while(inNum != -1){
12             if(inNum%2==0){
13                 evenNum++;
14             }else{
15                 oddNum++;
16                 
17             }
18             inNum = in.nextInt();
19         }
20         System.out.println(oddNum+" "+evenNum);
21     }
22 }
奇偶个数
2、数字特征值(5分)

题目内容:

对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。

 

这里的计算可以用下面的表格来表示:

数字

3

4

2

3

1

5

数位

6

5

4

3

2

1

数字奇偶

数位奇偶

奇偶一致

0

0

1

1

0

1

二进制位值

32

16

8

4

2

1

 

按照二进制位值将1的位的位值加起来就得到了结果13。

 

你的程序要读入一个非负整数,整数的范围是[0,100000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。

 

提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。

 

输入格式:

一个非负整数,整数的范围是[0,100000]。

 

输出格式:

一个整数,表示计算结果。

 

输入样例:

342315

 

输出样例:

13

时间限制:500ms内存限制:32000kb

/**
* 当不为0和1时,先算出该整数位数,之后从右到左依次对比每一位与其上的数字的奇偶,若相同则加2的(位数-1)次方
* */

技术分享
 1 import java.util.Scanner;
 2 
 3 public class Main {
 4     public static void main(String[] args) {
 5         // TODO Auto-generated method stub
 6         Scanner in = new Scanner(System.in);
 7         int inNum = in.nextInt();
 8         
 9         int tmpNum = 6;
10         int zNum=0;
11         int s = (int) Math.pow(10,tmpNum);
12         if(inNum==0){
13             System.out.println(0);
14         }else if(inNum==1){
15             System.out.println(1);
16         }else{
17             int tmpInNum = inNum;
18             while(tmpNum>0){
19                 if((inNum%s)!=inNum){
20                     break;
21                 }
22                 tmpNum--;
23                 s = (int) Math.pow(10,tmpNum);
24             }
25             int tmpNum2 =tmpNum+1;
26             int heightNum =0;
27             while(tmpNum>=0){
28                 s = (int) Math.pow(10,tmpNum);
29                 heightNum = tmpInNum/s;//最高位
30                 if( (heightNum%2==0 && tmpNum2%2==0) || (heightNum%2!=0 && tmpNum2%2 !=0) ){
31                     zNum += (int) Math.pow(2,tmpNum);
32                     
33                 }
34                 tmpInNum = tmpInNum-heightNum*s;
35                 tmpNum--;
36                 tmpNum2 =tmpNum+1;
37             }
38             System.out.println(zNum);
39         }
40     }
41     
42 }
数字特征值

 

 

云课堂javaweb微专业Java基础测试题3

标签:

原文地址:http://www.cnblogs.com/windJcoder/p/5370444.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!