输入一次数据 然后 统计按规律的打对号 不按规律的打错号 每五分钟输入一次 统计12个小时内的对号和错号的个数。
第一个规律,如果1这个数字左边的数字有 1、5、6、10,其中的一个,那么就打个对号 这十个规律是分开的 每输入一组数据要统计十次。这里的左边是紧挨着的左边。比如这个图片最下面一行的数字,对于上面十个规律来说,他只满足六个,也就是如果我输入图片最后一行的数字 输出的是六个对号四个错号。
你的意思我看懂了,但是你举的例子最后一行数字按照你的规律说,答案是错的。(六个对号四个错号),按照你的规律来说,应该是两个错,八个对。
3:234789 交集 null = null 叉
9:15610 交集 3 = null 叉
5:234789 交集 39 = 39 勾
2:234789 交集 395 = 39 勾
4:234789 交集 3952 = 239 勾
8:234789 交集 39524 = 2349 勾
1:15610 交集 395248 = 5 勾
7:15610 交集 3952481 = 15 勾
10:234789 交集 39524817 = 234789 勾
6:15610 交集 3952481710 = 1510 勾
你先确定一下这个规律是不是对的,如果确定了规律,出JAVA的算法很容易
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;
public class Myclass01 {
private HashMap<Integer,List<Integer>> map = new HashMap<Integer, List<Integer>>();
public static void main(String[] args) {
new Myclass01();
}
public Myclass01() {
System.out.print("请自行输入一串数字(0代表10):");
Scanner scan = new Scanner(System.in);
String read = scan.nextLine();
if(!read.matches("\\d+")){
System.out.println("输入的必须都是数字!");
return;
}
char[] ch = read.toCharArray();
int [] nums_input = new int[ch.length];
for (int i = 0; i < ch.length; i++) {
nums_input[i] = Integer.parseInt(String.valueOf(ch[i]));
}
initialization();
List<Integer> nums_input_list = new ArrayList<Integer>();
for (int i = 0; i < nums_input.length; i++) {
int num = nums_input[i];
nums_input_list.add(num);
}
for (int i = 0; i < nums_input_list.size(); i++) {
int num = nums_input_list.get(i);
if(num==0){
num = 10;
}
List<Integer> nums_list = map.get(num);
if(i==0){
System.out.println(num+":×");
}else{
int before = nums_input_list.get(i-1);
if(nums_list.contains(before)){
System.out.println(num+":√");
}else{
System.out.println(num+":×");
}
}
}
}
private int[] getRandomNum(int count) {
// TODO 自动生成的方法存根
int[] nums = new int[count];
for (int i = 0; i < count; i++) {
nums[i] = (int)(1+Math.random()*(10-1+1));
}
return nums;
}
private void initialization() {
List<Integer> nums_1 = new ArrayList<Integer>();
nums_1.add(1);
nums_1.add(5);
nums_1.add(6);
nums_1.add(10);
List<Integer> nums_2 = new ArrayList<Integer>();
nums_2.add(2);
nums_2.add(3);
nums_2.add(4);
nums_2.add(7);
nums_2.add(8);
nums_2.add(9);
map.put(1,nums_1);
map.put(2, nums_2);
map.put(3, nums_2);
map.put(4, nums_2);
map.put(5, nums_2);
map.put(6, nums_1);
map.put(7, nums_1);
map.put(8, nums_2);
map.put(9, nums_1);
map.put(10, nums_2);
}
}
运行结果是:
3:×
9:×
5:√
2:×
4:√
8:√
1:×
7:√
10:√
6:√
我可以说我根本就没有看懂你说的是什么规律嘛……你把规律用1、2、3…这种罗列的方式总结一下
以前学过,但我好像忘了:)