在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。
public class Solution {
// Parameters:
// numbers: an array of integers
// length: the length of array numbers
// duplication: (Output) the duplicated number in the array number,length of duplication array is 1,so using duplication[0] = ? in implementation;
// Here duplication like pointor in C/C++, duplication[0] equal *duplication in C/C++
// 这里要特别注意~返回任意重复的一个,赋值duplication[0]
// Return value: true if the input is valid, and there are some duplications in the array number
// otherwise false
public boolean duplicate(int numbers[],int length,int [] duplication) {
for(int i=0;i<length;i++){
for(int j=i+1;j<length;j++) {
if(numbers[i]==numbers[j]) {
duplication[0]=numbers[i];
return true;
}
}
}
return false;
}
}
NowCoder的老家住在工业区,日耗电量非常大。是政府的眼中钉肉中刺,但又没办法,这里头住的可都是纳税大户呀。
今年7月,又传来了不幸的消息,政府要在7、8月对该区进行拉闸限电。但迫于压力,限电制度规则不会太抠门,政府决定从7月1日停电,然后隔一天到7月3日再停电,再隔两天到7月6日停电,一次下去,每次都比上一次晚一天。
NowCoder可是软件专业的学生,怎么离得开计算机。如果停电,就“英雄无用武之地”了。呵呵。
所以他开始盘算起自己回家的日子了,他想知道自己到家后到底要经历多少天倒霉的停电。你能帮他算一算吗?
输入描述:
输入包括多组数据。 每组数据包括一行:redraiment到家的日期。 输入以0/0结束。
输出描述:
对应每个输入包括一个输出。 为redraiment回家后停电的天数(包括到家那天)。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()) {
String input=scanner.nextLine();
if(input.equals("0/0")) break;
maths(input);
System.out.println(maths(input));
}
}
private static int maths(String input) {
String[] strarry=input.split("/");
int month=Integer.valueOf(strarry[0]);
int day=Integer.valueOf(strarry[1]);
int days=10;
int count=2;
int count2=0;
if(0<month&&month<7) {
days=10;
}
else if(month==7) {
for(int i=1;i<day;) {
i=i+count;
count++;
count2++;
}
days=days-count2;
}
else if(month==8) {
for(int i=1;i<(31+day);) {
i=i+count;
count++;
count2++;
}
days=days-count2;
}
else if(8<month&&month<=12) {
days=0;
}
return days;
}
}