ブルーブリッジカップ携帯電話の末尾番号
2435 ワード
30年の改革開放は、中国に天地を覆す変化をもたらした.2011年の中国の携帯電話の生産量は約11.72億台だった.携帯電話はすでに庶民の基本的な日用品になりました!携帯電話にきれいで覚えやすい番号を選ぶのは多くの人の願いかもしれません.しかし、号源は限られており、有償で号を選ぶ方法しかない.
このプログラムの目的は、指定された携帯電話の末尾番号(4桁)に基づいて、一定のルールに従って採点することです.そのルールは以下の通りです.1.連番が発生した場合、昇順も降順も5点加算されます.例えば、56784321は加算基準を満たします.
2.前の3つの数字が同じか、後の3つの数字が同じかは、3点加算されます.たとえば、488866657777は加点の基準を満たしています.注意:7777この基準を2回満たすため、このルールは6点を加えた.
3.AABBまたはABABモードに適合するプラス1点.例えば、2255397777はいずれもこのモードに合致するため、加算されます.注意:7777はこの基準を2回満たしているので、この基準は2点加算されています.
4.6、8、9のいずれかの数字を含み、1回に1点加算されます.例えば432668759918はいずれも加点基準を満たしている.そのうち、6875は2点加算された.9918は3点加算された.
末尾の最終得点は各基準の加点総和です!
要求プログラムは標準入力からデータを受信し,標準出力に結果を出力する.入力フォーマットは、1行目は整数n(<100)で、下にどれだけの入力行があるかを示し、次はn行4ビットのデータで、加点を待つ携帯電話の末尾番号です.
たとえば、次のように入力します.
14
3045
….
…..
6789
8866
出力:
0
0
….
…
8 5
このプログラムの目的は、指定された携帯電話の末尾番号(4桁)に基づいて、一定のルールに従って採点することです.そのルールは以下の通りです.1.連番が発生した場合、昇順も降順も5点加算されます.例えば、56784321は加算基準を満たします.
2.前の3つの数字が同じか、後の3つの数字が同じかは、3点加算されます.たとえば、488866657777は加点の基準を満たしています.注意:7777この基準を2回満たすため、このルールは6点を加えた.
3.AABBまたはABABモードに適合するプラス1点.例えば、2255397777はいずれもこのモードに合致するため、加算されます.注意:7777はこの基準を2回満たしているので、この基準は2点加算されています.
4.6、8、9のいずれかの数字を含み、1回に1点加算されます.例えば432668759918はいずれも加点基準を満たしている.そのうち、6875は2点加算された.9918は3点加算された.
末尾の最終得点は各基準の加点総和です!
要求プログラムは標準入力からデータを受信し,標準出力に結果を出力する.入力フォーマットは、1行目は整数n(<100)で、下にどれだけの入力行があるかを示し、次はn行4ビットのデータで、加点を待つ携帯電話の末尾番号です.
たとえば、次のように入力します.
14
3045
….
…..
6789
8866
出力:
0
0
….
…
8 5
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner s=new Scanner(System.in);
int n=s.nextInt();
s.nextLine();
Vector<Integer> temp=new Vector<Integer>();
while(n>0){
int sum=0;
String telephone=s.nextLine();
//
if(telephone.charAt(0)-telephone.charAt(1)==1){
char ch=telephone.charAt(0);
int index=0;
while(index<4&&ch==telephone.charAt(index)){
ch--;
index++;
}
if(index>=4){
sum+=5;
}
}
if(telephone.charAt(1)-telephone.charAt(0)==1){
char ch=telephone.charAt(0);
int index=0;
while(index<4&&ch==telephone.charAt(index)){
ch++;
index++;
}
if(index>=4){
sum+=5;
}
}
//
if(telephone.charAt(0)==telephone.charAt(1)&&telephone.charAt(1)==telephone.charAt(2)){
sum+=3;
}
if(telephone.charAt(1)==telephone.charAt(2)&&telephone.charAt(2)==telephone.charAt(3)){
sum+=3;
}
//
if(telephone.charAt(0)==telephone.charAt(1)&&telephone.charAt(2)==telephone.charAt(3)){
sum+=1;
}
if(telephone.charAt(0)==telephone.charAt(2)&&telephone.charAt(1)==telephone.charAt(3)){
sum+=1;
}
//
for(int i=0;i<4;i++){
if(telephone.charAt(i)=='6'||telephone.charAt(i)=='8'||telephone.charAt(i)=='9'){
sum+=1;
}
}
temp.add(sum);
n--;
}
for(int i=0;i<temp.size();i++){
System.out.println(temp.elementAt(i));
}
}
}