总时间限制: 1000ms 内存限制: 65536kB
描述
Calculate a + b
输入
Two integer a,b (0 ≤ a,b ≤ 10)
输出
Output a + b
样例输入
1 2
样例输出
3
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + b);
}
}
总时间限制: 1000ms 内存限制: 65536kB
描述
输入三个整数,把第二个输入的整数输出。
输入
只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。
输出
只有一行,一个整数,即输入的第二个整数。
样例输入
123 456 789
样例输出
456
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
sc.nextInt();
System.out.println(sc.nextInt());
sc.nextInt();
}
}
方法二:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int a=in.nextInt();
int b=in.nextInt();
int c=in.nextInt();
System.out.print(b);
}
}
总时间限制: 1000ms 内存限制: 65536kB
描述
对于给定的一个字符串,统计其中数字字符出现的次数
输入
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
输出
对于每个测试实例,输出该串中数值的个数,每个输出占一行。
样例输入
2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf
样例输出
6
9
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
for (int i = 0; i < n; i++) {
String s = sc.nextLine();
System.out.println(count(s));
}
}
static int count(String s) {
int count = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) >= '0' && s.charAt(i) <= '9') {
count++;
}
}
return count;
}
}
方法二:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int count=0;
int n=in.nextInt();
in.nextLine();
for (int i=1;i<=n;i++) {
String str=String.valueOf(i);
char arr[]=str.toCharArray();
for (int j=0;j<arr.length;j++)
if(arr[j]=='1')
count++;
}
System.out.println(count);
}
}
总时间限制: 1000ms 内存限制: 65536kB
描述
递归是一种非常有效的程序设计方法,应用相当广泛,递归求和就是其中的一种。现在定义数列通项An = n * n,给定一个整数n(1 <= n <= 1000),要你求前n项和Sn,即Sn = 1 * 1 + 2 * 2 + … + n * n。要求使用递归的方法进行计算。
输入
输入只有一行,包括一个整数n,表示要求的项数。
输出
输出只有一行,为一个整数Sn,表示对应的前n项和。
样例输入
7
样例输出
140
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i * i;
}
System.out.println(sum);
}
}
方法二:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int sum=recursion(n);
System.out.println(sum);
in.close();
}
public static int recursion(int n) {
if(n==1) return 1;
else return n*n+add(n-1);
}
}
总时间限制: 1000ms 内存限制: 65536kB
描述
C语言中的合法标识符的定义为:以下划线或字母开头的字母数字串(含下划线)。
完成一个程序实现对输入的n个字符串进行判定,是否为C语言的合法标识符。如果是则输出1,不是则输出0
输入
输入的第一行为一个数字,表明有几个输入字串。
后面每一行为一个长度不超过80的字符串。
输出
对所有输入的字符串进行判断,是合法标识符则输出1,回车。否则输出0,回车。
样例输入
5
hello_world
my god
i
_stdio
008A
样例输出
1
0
1
1
0
代码
import java.util.Scanner;
public class Main {
static int f(String s){
if(s.length()==0)
return 0;
char c=s.charAt(0);
if(!(c>='a'&&c<='z'||c>='A'&&c<='Z'||c=='_'))
return 0;
for(int i=1;i<s.length();i++){
c=s.charAt(i);
if(!(c>='a'&&c<='z'||c>='A'&&c<='Z'||c=='_'||c>='0'&&c<='9'))
return 0;
}
return 1;
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
sc.nextLine();
for(int i=0;i<n;i++){
String s=sc.nextLine();
System.out.println(f(s));
}
}
}
方法二:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int[] result=new int[100];
int n=in.nextInt();
in.nextLine();
for(int i=1;i<=n;i++) {
String str=in.nextLine();
char str2=str.charAt(0);
char[] str3=str.toCharArray();
boolean blk=true;
for(int j=0;j<str.length();j++) {
if(str3[j]==' ')
blk=false;
}
if((str2=='_'||(str2>='a'&&str2<='z')||(str2>='A'&&str2<='Z')) && blk)
result[i]=1;
else
result[i]=0;
}
for(int i=1;i<=n;i++) {
System.out.println(result[i]);
}
in.close();
}
}
总时间限制: 1000ms 内存限制: 65536kB
描述
计算非负整数 m 到 n(包括m 和 n )之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。例如 m=3, n=12, 其和则为:3+5+7+9+11=35。
输入
两个数 m 和 n,两个数以一个空格分开,其中 0 <= m <= n <= 300 。
输出
输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有奇数的和
样例输入
7 15
样例输出
55
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sum = 0;
int m = sc.nextInt();
int n = sc.nextInt();
for (int i = m; i <= n; i++) {
if (i % 2 == 1) {
sum += i;
}
}
System.out.println(sum);
}
}
总时间限制: 1000ms 内存限制: 65536kB
描述
将十六进制数转换成十进制数
输入
第一行有一个整数T,表示共有T组数据
接下来T行,每一行为一个16进制无符号正整数,位数不超过8位,数中的a-f均为大写字母,数前没有多余的0
输出
输出共T行,每一行是一组数据的十进制表示,数字前不得有多余的0。
十进制数小于2^31
样例输入
4
A
F
FFFE
10001
样例输出
10
15
65534
65537
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
System.out.println(Integer.parseInt(sc.next(),16));
}
}
}
总时间限制: 1000ms 内存限制: 100000kB
描述
输入n个整数,统计每个数出现的次数.
输入
第一行是一个整数n(1<=n<=1000),接下来n行每行一个整数.
输出
第一行输出总共有多少个不同的整数.
接下来每行输出一个整数及这个整数出现的次数,用空格分隔.
输出的整数的顺序与它们在输入中第一次出现的顺序一致(即在输入中先出现的数,也会在输出中先出现)
样例输入
5
2
3
2
1
2
样例输出
3
2 3
3 1
1 1
代码
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Map<Integer, Integer> map = new LinkedHashMap<Integer, Integer>();
for (int i = 0; i < n; i++) {
int a = sc.nextInt();
Integer v = map.get(a);
if (v == null) {
map.put(a, 1);
} else {
map.put(a, v + 1);
}
}
System.out.println(map.size());
for (Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
方法二
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int a = cin.nextInt();
int[] b=new int[a];
int[] s=new int[1000000];
for (int i = 0; i < a; i++) {
b[i] = cin.nextInt();
s[b[i]]++;
}
StringBuffer sbf=new StringBuffer();
int count=0;
for (int i = 0; i < a; i++) {
if(s[b[i]]>0){
sbf.append(b[i]+" "+s[b[i]]+"\n");
s[b[i]]=0;
count++;
}
}
System.out.println(count);
System.out.println(sbf);
}
}
总时间限制: 5000ms 内存限制: 655360kB
描述
求10000以内n的阶乘。
输入
只有一行输入,整数n(0<=n<=10000)。
输出
一行,即n!的值。
样例输入
100
样例输出
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
代码
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
BigInteger p=new BigInteger("1");
for (int i = 1; i < a + 1; i++) {
p=p.multiply(new BigInteger(i+""));
}
System.out.println(p);
}
}
总时间限制: 1000ms 内存限制: 65536kB
描述
孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?
输入
输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。
输出
输出一个整数,即最高的成绩。
样例输入
5
85 78 90 99 60
样例输出
99
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int max = -1;
for (int i = 0; i < a; i++) {
int n = sc.nextInt();
if (n > max)
max = n;
}
System.out.println(max);
}
}