计算机考研复试编程题基础Java版(⼀)
随着初试成绩的揭晓,考研狗们也将进⼊最后的复试准备环节啦,我是今年⼆战考⽣,由于报考院校复试要求上机,因此最近在家苦练编程,算是有点头绪了吧。不知道为什么⼤家普遍选择⽤C/C++作为编程语⾔,我是⼤三⼯作那会钻研过⼀段时间的Java语⾔,⽐较热衷,因此今天就整理⼀下如何⽤Java实现简单的上机编程问题。
1、求约数的个数
输⼊:⼀个正整数N
输出:N的约数个数
static void run(int N){
int count=0;
for (int k = 1; k <= N; k++) {
if (N % k == 0) { // 如果这个数能被k整除,那么对应的Count就加⼀
count++;
}
}
System.out.println(count);
}
2、字符串的反序输出
输⼊:任意个字符(如:abcd)
输出:将其反序输出(如:dcba)
static void inOrder(String s){
StringBuffer sf = new StringBuffer(s);
verse().toString();//这⾥直接使⽤StringBuffer类的reverse()⽅法
System.out.println(s);
}
3、计算⼀个数的阶乘
输⼊:⼀个正整数N
输出:N的阶乘
//此⽅法仅可计算20以内的阶乘
static long  run(int n) {
long  num = 1;
for(int i=1;i<=n;i++) {
num*=i;
}
System.out.println(num);
}
4、abc+bcc=532
输⼊:⽆
输出:设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。输出满⾜条件的所有a、b、c的值。
public static void main(String[] args) {
int a=0,b=0,c=0;
for(int i=100;i<999;i++) {
a = i/100;//求百位
b=i/10%10;//求⼗位
c=i%10;//求个位
int bcc = b*100+c*10+c;
if(i+bcc == 532) {
System.out.println(a+" "+b+" "+c);
}
}
}
5、按ASCII码排序
输⼊:⼀个长度不超过20的字符串
输出:输出该字符串按照ASCII码的⼤⼩从⼩到⼤进⾏排序后的结果
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String s = sc.nextLine();
int n = s.length();
String[] st = new String[n];// ⽤来存放分开的每个字符
int[] hash = new int[n]; // ⽤来存放每个字符的ASCII码的值
String temp = "";
for (int i = 0; i < n; i++) {
st[i] = s.substring(i, i + 1);
// System.out.println(st[i]);
计算机专业java}
//Arrays.sort(st);        //直接使⽤数组排序⽅法最简单
for (int j = 0; j < n; j++) { // 使⽤冒泡排序按照其ASCII码的值进⾏排序
for (int k = 0; k < n-1-j; k++) {
if (st[k].hashCode() > st[k + 1].hashCode()) {
temp = st[k];
st[k] = st[k + 1];
st[k + 1] = temp;
}
}
}
String ss = "";
for (int i = 0; i < n; i++) {
ss = ss+st[i];
}
System.out.println(ss);
}
}