试题编号: | 201612-1 |
试题名称: | 中间数 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述
在一个整数序列a
1, a
2, …, a
n中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。
给定一个整数序列,请找出这个整数序列的中间数的值。
输入格式
输入的第一行包含了一个整数n,表示整数序列中数的个数。
第二行包含n个正整数,依次表示a 1, a 2, …, a n。
输出格式
如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。
样例输入
6
2 6 5 6 3 5
样例输出
5
样例说明
比5小的数有2个,比5大的数也有2个。
样例输入
4
3 4 6 7
样例输出
-1
样例说明
在序列中的4个数都不满足中间数的定义。
样例输入
5
3 4 6 6 7
样例输出
-1
样例说明
在序列中的5个数都不满足中间数的定义。
评测用例规模与约定
对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ a
i ≤ 1000。
|
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner c =new Scanner(System.in); int num[]=new int[1001]; int n=c.nextInt(); for(int i=0;i<n;i++){ ++num[c.nextInt()]; } int count=0; boolean flag=true; for(int i=1;i<1001;i++){ int ss=num[i]; if(ss!=0 &&count==n-count-ss){ flag =false; System.out.println(i);break; }else count+=ss; } if(flag)System.out.println(-1); } }
结果:
试题编号: | 201612-2 |
试题名称: | 工资计算 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述
小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算:
1) 个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算个人所得税,令A=S-3500元; 2) A中不超过1500元的部分,税率3%; 3) A中超过1500元未超过4500元的部分,税率10%; 4) A中超过4500元未超过9000元的部分,税率20%; 5) A中超过9000元未超过35000元的部分,税率25%; 6) A中超过35000元未超过55000元的部分,税率30%; 7) A中超过55000元未超过80000元的部分,税率35%; 8) A中超过80000元的部分,税率45%; 例如,如果小明的税前工资为10000元,则A=10000-3500=6500元,其中不超过1500元部分应缴税1500×3%=45元,超过1500元不超过4500元部分应缴税(4500-1500)×10%=300元,超过4500元部分应缴税(6500-4500)×20%=400元。总共缴税745元,税后所得为9255元。 已知小明这个月税后所得为T元,请问他的税前工资S是多少元。
输入格式
输入的第一行包含一个整数T,表示小明的税后所得。所有评测数据保证小明的税前工资为一个整百的数。
输出格式
输出一个整数S,表示小明的税前工资。
样例输入
9255
样例输出
10000
评测用例规模与约定
对于所有评测用例,1 ≤ T ≤ 100000。
|
程序:
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner c= new Scanner(System.in); double mony=c.nextDouble(); if(mony<=3500)System.out.println((int)mony); else if(mony>3500 && mony<=4955){ System.out.println(getMony(mony,3500,0.97)+3500); }else if(mony>4955 && mony<=7655){ System.out.println(3500+1500+getMony(mony,4955,0.9)); }else if(mony>7655 && mony<=11255){ System.out.println(3500+4500+getMony(mony,7655,0.8)); } else if(mony>11255 && mony<=30755){ System.out.println(3500+9000+getMony(mony,11255,0.75)); }else if(mony>30755 && mony<=44755){ System.out.println(3500+35000+getMony(mony,30755,0.7)); }else if(mony>44755 && mony<61005){ System.out.println(3500+55000+getMony(mony,44755,0.65)); }else{ System.out.println(3500+80000+getMony(mony,61005,0.55)); } } public static int getMony(double mony,int tem,double rate){ mony=mony-tem; mony=mony/rate; return (int)Math.ceil(mony); //取上整 } }
package com; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; import java.util.Scanner; public class C2016123 { public static void main(String[] args) { List<String> authority = new ArrayList<String>(); List<List<String>> role = new ArrayList<List<String>>();//角色权限 List<List<String>> userRole =new ArrayList<List<String>>(); List<List<String>> selectRole = new ArrayList<List<String>>(); List<List<String>> userAuthor = new ArrayList<List<String>>(); Scanner c= new Scanner(System.in); int AuthNum=c.nextInt(); for(int i=0;i<AuthNum;i++){ authority.add(c.next()); // 权限 } int roleNum=c.nextInt(); c.nextLine(); for(int i=0;i<roleNum;i++){ //角色权限 String str= c.nextLine(); String ro[]=str.split(" "); List<String> tem= new ArrayList<String>(); for(int j=0;j<ro.length;j++){ tem.add(ro[j]); } tem.remove(1); role.add(tem); } int user=c.nextInt(); c.nextLine(); for(int i=0;i<user;i++){ String str = c.nextLine(); //用户角色 String u[] =str.split(" "); List<String> tem= new ArrayList<String>(); for(int j=0;j<u.length;j++){ tem.add(u[j]); } tem.remove(1); userRole.add(tem); } for(int i=0;i<userRole.size();i++){ String usernameI = userRole.get(i).get(0); List<String> userAuthI= new ArrayList<String>(); userAuthI.add(usernameI); ListIterator<String> rrs=userRole.get(i).listIterator(1); while(rrs.hasNext()){ String roleII=rrs.next(); for(int j=0;j<role.size();j++){ List<String> auths= role.get(j); if(roleII!=null &&roleII.equals(auths.get(0))){ ListIterator<String> authors= role.get(j).listIterator(1); while(authors.hasNext()){ String auorit=authors.next(); userAuthI.add(auorit); //userAuthI.addAll((Collection<? extends String>) authors); } } } } userAuthor.add(userAuthI); } int select =c.nextInt(); //查询 c.nextLine(); for(int i=0;i<select;i++){ String str =c.nextLine(); String sel[]=str.split(" "); List<String> tem= new ArrayList<String>(); for(int j=0;j<sel.length;j++){ tem.add(sel[j]); } selectRole.add(tem); } for(int i=0;i<select;i++){ String selctName=selectRole.get(i).get(0); String selctAuthority=selectRole.get(i).get(1); boolean falgName=false; for(int j=0;j<userAuthor.size();j++){ boolean flag=false; if(selctName.equals(userAuthor.get(j).get(0))){ falgName=true; //查询的用户存在 ListIterator<String> allAuthor=userAuthor.get(j).listIterator(1); int preRank=-10; while(allAuthor.hasNext()){ String authorII=allAuthor.next(); if(selctAuthority.contains(":")){ String rankAuthor=selctAuthority.split(":")[0]; int rank=Integer.parseInt(selctAuthority.split(":")[1]); String allAuthor1 = authorII.split(":")[0]; int allrank = Integer.parseInt(authorII.split(":")[1]); if(rankAuthor.equals(allAuthor1) && allrank>=rank){ System.out.println("true"); flag=true; break; } }else{ if(authorII.contains(":") && authorII.split(":")[0].equals(selctAuthority) && preRank<Integer.parseInt(authorII.split(":")[1])){ preRank = Integer.parseInt(authorII.split(":")[1]); flag=true; }else if(selctAuthority.equals(authorII) && !authorII.contains(":")){ flag=true; System.out.println("true"); } } } if(preRank>-10){ System.out.println(preRank); } if(!flag){ //判断是权限不存在还是未定义 System.out.println("false"); //用户不具有该权限 } } } if(!falgName){ System.out.println("false"); } } } }