描述
将一个三位数反向输出。
输入
一个三位数n。
输出
反向输出n。
样例输入
100
样例输出
001
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(new StringBuffer(sc.next()).reverse());
}
}
//reverse() 字符串翻转
描述
给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作。
输入
输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32)。
输出
输出按照题目要求处理后的单词。
样例输入
referer
样例输出
refer
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s=sc.next();
if(s.endsWith("er")||s.endsWith("ly")){
System.out.println(s.substring(0,s.length()-2));
}
else if(s.endsWith("ing")){
System.out.println(s.substring(0,s.length()-3));
}
else{
System.out.println(s);
}
}
}
//substring(begin,end) 截取字符串 [begin,end)
//stringObject.lastIndexOf(value,fromindex) 从fromindex开始查找最后一次出现value的位置
//stringObject.indexOf(searchvalue,fromindex) 从fromindex开始查找第一次出现value的位置
描述
输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
输入
输入包括3行,
第1行是包含多个单词的字符串 s;
第2行是待替换的单词a(长度 <= 100);
第3行是a将被替换的单词b(长度 <= 100).
s, a, b 最前面和最后面都没有空格.
输出
输出只有 1 行,将s中所有单词a替换成b之后的字符串。
样例输入
You want someone to help you You I
样例输出
I want someone to help you
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s=sc.nextLine();
String s1=sc.next();
String s2=sc.next();
String[] ss=s.split(" ");
for(String st:ss){
if(st.equals(s1)){
System.out.print(s2+" ");
}
else{
System.out.print(st+" ");
}
}
}
}
//split("regex",limit) 以regex作为分隔符分割字符串,regex可有多个字符用|连接,limit参数控制分割的次数
描述
给定一个字符串,输出所有长度至少为2的回文子串。
回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccdeedccc都是回文字符串。
输入
一个字符串,由字母或数字组成。长度500以内。
输出
输出所有的回文子串,每个子串一行。
子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。
样例输入
123321125775165561
样例输出
33 11 77 55 2332 2112 5775 6556 123321 165561
import java.util.Scanner;
public class Main {
static boolean huiwen(String s){
for(int i=0;i
描述
用手机发短信,一条短信资费为0.1元,但限定一条短信的内容在70个字以内(包括70个字)。如果你一次所发送的短信超过了70个字,则会按照每70个字一条短信的限制把它分割成多条短信发送。假设已经知道你当月所发送的短信的字数,试统计一下你当月短信的总资费。
输入
第一行是整数n,表示当月发送短信的总次数,接着n行每行一个整数,表示每次短信的字数。
输出
输出一行,当月短信总资费,单位为元,精确到小数点后1位。
样例输入
10 39 49 42 61 44 147 42 72 35 46
样例输出
1.3
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
double sum = 0;
for (int i = 0; i < n; i++) {
int t1 = sc.nextInt();
int t2 = t1 / 70;
int t3 = t1 % 70;
if (t3 != 0) {
t2++;
}
sum += 0.1 * t2;
}
System.out.printf("%.1f",sum);
}
}
描述
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。
程序要求输入一个整数,将经过处理得到1的过程输出来。
输入
一个正整数
输出
从输入整数到1的步骤,每一步为一行,每一部中描述计算过程,假定输入为7,则输出为:
7*3+1=22
22/2=11
11*3+1=34
34/2=17
17*3+1=52
52/2=26
26/2=13
13*3+1=40
40/2=20
20/2=10
10/2=5
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
最后一行输出"End",如果输入为1,直接输出"End"
样例输入
5
样例输出
5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 End
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
if(n==1){
System.out.println("End");
return;
}
else{ while(true){
if(n%2==0){
System.out.println(n+"/2="+(n/2));
n/=2;
}
else{
System.out.println(n+"*3+1="+(n*3+1));
n=n*3+1;
}
if(n==1){
System.out.println("End");
return;
}
}
}
}
}
描述
判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。
输入
两行,每行包含一个字符串。
输出
若两个字符串相等,输出YES,否则输出NO。
样例输入
a A bb BB ccc CCC Aa BBbb CCCccc
样例输出
YES
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s1=sc.nextLine();
String s2=sc.nextLine();
s1=s1.replaceAll(" ","");
s2=s2.replaceAll(" ","");
if(s1.equalsIgnoreCase(s2)){
System.out.println("YES");
}
else{
System.out.println("NO");
}
}
}
//relpaceAll(x,y) 将字符串中的所有x全部替换为y
//s1.equalsIgnoreCase(s2) 不区分大小写的判等
//s1.equals(s2) 区分大小写的判等 注意与==的区别
描述
假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。
第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即,将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。
请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用逗号间隔。
输入
输入正整数N和M,以单个空格隔开。
输出
顺次输出关闭的灯的编号,其间用逗号间隔。
样例输入
10 10
样例输出
1,4,9
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n,m;
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
m=sc.nextInt();
int[] a=new int[n+1];
Arrays.fill(a, 1);
for(int i=1;i<=m;i++) {
for(int j=1;j<=n;j++) {
if(j%i==0) {
a[j]=-a[j];
}
}
}
String s="";
for(int i=1;i<=n;i++) {
if(a[i]==-1) {
s=s+i+",";
}
}
System.out.println(s.substring(0,s.length()-1));
}
}
//fill(xxx[] a,xxx v) 用v填充数组的每一个元素
描述
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
输入
一个字符串,长度小于100000。
输出
输出第一个仅出现一次的字符,若没有则输出no。
样例输入
abcabd
样例输出
c
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.next();
int len=s.length();
int[] a=new int[26];
for(int i=0;i
描述
两个相差为2的素数称为素数对,如5和7,17和19等,本题目要求找出所有两个数均不大于n的素数对。
输入
一个正整数n。1 <= n <= 10000。
输出
所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。
样例输入
100
样例输出
3 5 5 7 11 13 17 19 29 31 41 43 59 61 71 7
import java.util.Scanner;
public class Main {
static boolean sushu(int n) {
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int flag=0;
for (int i = 3; i + 2 <= n; i++) {
if (sushu(i) && sushu(i + 2)) {
flag=1;
System.out.println(i + " " + (i + 2));
}
}
if(flag==0){
System.out.println("empty");
}
}
}