一. 输入一组由正整数组成的数字序列,序列大小不超过500,遇到-1结束输入,判断这个数字序列是否是升序。如果是升序,输出“YES”,如果不是升序,输出“NO”。
import
java.util.Scanner;
public class ShengJiang {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("数组的长度:");
int n=sc.nextInt();
int[] a=new int[n];
System.out.println("输入一个数组:");
for(int i=0;i
}
}
二. 输入一个正整数n,判断不超过n的所有数中与7有关的数有多少个。如果某个数是7或者是7的倍数,或者这个数的某一位是7,那么这个数便与7有关。举个例子,如果输入的n是20,那么20以内与7有关的数便是:7、14、17,最终输出结果是3。
import
java.util.Scanner;
public class LianXi {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入一个数字:");
int N=sc.nextInt();
int count=0;
for(int i=1;i<=N;i++) {
if(i%7==0||i%10==7) {
count++;
}
}
System.out.println("一共有多少个和7相关的数字:"+count);
}
}
三. 输入一个正整数,判断这个数是否是“回文数”。所谓“回文数”,便是正着念和反着念都一样的数。比如,1、11、121、1221、12321,都是回文数。如果这个输入的数是回文数,那么输出“YES”,如果不是回文数,输出“NO”。
方法一:
import
java.util.Scanner;
public class HuiWenShu {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入一个整数:");
int n=sc.nextInt();
String str1=n+"";
StringBuilder str2=new StringBuilder(str1);
str2.reverse();
int count=0;
for(int i=0;i
}
}
方法二:
import
java.util.Scanner;
public class HuiWenShu {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入一个整数:");
int s=sc.nextInt();
String str=String.valueOf(s);
StringBuilder BD=new StringBuilder(str);
if(BD.reverse().toString().equals(str)) {
System.out.println("Yes");
}else {
System.out.println("No");
}
}
}
方法三:
import
java.util.Scanner;
public class FanZhuan {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("输入一个整数:");
String s=sc.nextLine();
char[] chs=s.toCharArray();
String result="";
for(int i=chs.length-1;i>=0;i--) {
result+=chs[i];
}
if(s.equals(result)) {
System.out.println("Yes");
}else {
System.out.println("No");
}
}
}
四. 输入两个字符串,str1 和 str2,将字符串 str2 逆序之后连接到字符串 str1 后面,最后输出str1。举个例子,如果输入的字符串 str1 是"abc", 字符串 str2 是"123",那么逆序连接之后,输出的结果为"abc321"。
方法一:
import
java.util.Scanner;
public class FanZhuan {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个字符串:");
String s1=sc.nextLine();
System.out.println("请输入第二个字符串:");
String s2=sc.nextLine();
StringBuilder bd=new StringBuilder(s2);
String s3=bd.reverse().toString();
System.out.println(s1+s3);
}
}
方法二:
import
java.util.Scanner;
public class FanZhuan {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个字符串:");
String s1=sc.nextLine();
System.out.println("请输入第二个字符串:");
String s2=sc.nextLine();
String result="";
char [] s3=s2.toCharArray();
for(int x=s3.length-1;x>=0;x--) {
result+=s3[x];
}
System.out.println(s1+result);
}
}
五. 首先输入两个正整数,m(2<=m<=36)和n(2<=m<=36),然后输入一个m进制的数字串,将这个数字串转换为n进制并输出。如果进制超过9,那么用小写字母’a’到’z’依次表示10~35的数字。(假设数字串对应的十进制数用int存储不溢出)。
六. 输入一个正整数n(n<=30),输出n所对应的蛇形矩阵。举两个例子:
n=10时,蛇形矩阵为:
具体的蛇形矩阵变化路径见下图:
思路:是按顺序将递减的数字依次填到相应的位置,解题的关键是如何确认下一步的矩阵位置。变量 s 控制路径拐弯之后到下一次拐角之间的路径长度,变量 i 控制下一个位置的行号,s-i 控制下一个位置的列号,d 控制路径方向(向下走还是向上走),n 控制下一个要填的数字。有了下一个矩阵的位置和数字,将数字递减到 1 即可生成蛇形矩阵。
一个小窍门:是在矩阵中标出每个位置的行号和列号 (i,j) ,然后观察 i 和 j 的变化规律,想出办法用几个变量去控制这个规律即可。
import java.util.Scanner;
public class SheXing {
public static void main(String[] args) {
Scanner
sc=new Scanner(System.in);
System.out.println("请输入一个数字(小于等于30):");
int n=sc.nextInt();
int [][] a=new int [n][n];
show(n,a);
}
public static void show(int n,int [][] a) {
int i=0,s=0,d=-1;
while(n>=1) {
int cnt=0;
while(cnt<=s) {
a[i][s-i]=n--;
cnt++;
i+=d;
}
s++;
d=-d;
i=d>0?0:s;
}
int j;
for(i=0;i<10;i++) {
if(a[i][0]<=0) {
break;
}
for(j=0;j<10;j++) {
if(a[i][j]>0) {
System.out.print(a[i][j]+" ");
}
}
System.out.println();
}
}
}
请文明使用资源,如果发现有代码错误或者不懂欢迎留言评论。