程序一
package com.yqx.demo;
/**
- 素数算法问题
- @author YangChingyu-k
*/
public class Demo01 {
public static void main(String[] args) {
int count = 0;
for(int i=101; i<=200; i+=2) {
boolean flag = true;
//用一个数去除2到sqrt(i),能整除则不是素数,否则反之
for(int j=2; j<=Math.sqrt(i); j++) {
if( i % j == 0 ) {
flag = false;
break;
}
}
if( flag == true ) {
count++;
System.out.println(“素数:” + i);
}
}
System.out.println(“素数总个数为:” + count);
}
}
程序二
package com.yqx.demo;
/**
- 水仙花数算法问题
- @author YangChingyu-k
/
public class Demo02 {
public static void main(String[] args) {
int a,b,c;
for(int i=101;i<1000;i++) {
a = i % 10;
b = i / 10 %10;
c = i / 100;
if(aaa + bbb + cc*c == i) {
System.out.println(“水仙花数:” + i);
}
}
}
}
程序三
package com.yqx.demo;
import java.util.Scanner;
/**
- 利用条件运算符的嵌套实现分数等级
- @author YangChingyu-k
*/
public class Demo03 {
public static void main(String[] args) {
while (true) {
System.out.println(“请输入分数:”);
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
char grade = score >= 90 ? ‘A’ : score >= 60 ? ‘B’ : ‘C’;
System.out.println(“分数等级:” + grade);
}
}
}
程序四
比较简单的方法
package com.yqx.demo;
import java.util.Scanner;
/**
- 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- 这是比较简单的方法
- @author YangChingyu-k
*/
public class Demo04 {
public static void main(String[] args) {
int ZimuCount = 0;
int KonggeCount = 0;
int Numcount = 0;
int OtherCount = 0;
System.out.println("请输入字符串:");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
if (Character.isLetter(ch[i])) {
ZimuCount++;
} else if (Character.isSpaceChar(ch[i])) {
KonggeCount++;
} else if (Character.isDigit(ch[i])) {
Numcount++;
} else {
OtherCount++;
}
}
System.out.println(
"字母个数为:" + ZimuCount + " 空格个数为:" + KonggeCount + " 数字个数为:" + Numcount + "其他字符个数为:" + OtherCount);
}
}
程序五
这道题不知道为什么我面试的公司都喜欢出。
package com.yqx.demo;
import java.util.Scanner;
/**
- 求s=a+aa+aaa+aaaa+aa…a的值,例如2+22+222+2222(此时共有4个数相加)
- @author YangChingyu-k
*/
public class Demo05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字a:");
int a = sc.nextInt();
System.out.println("请输入次数n:");
int n = sc.nextInt();
int sum=0,b=0;
for(int i=0; i<n; i++) {
b+=a;
sum+=b;
a=a*10;
}
System.out.println("sum=" + sum);
}
}
程序六
package com.yqx.demo;
/**
- 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3
- @author YangChingyu-k
*/
public class Demo06 {
public static void main(String[] args) {
for(int i=1; i<=1000; i++) {
int sum = 0;
for(int j=1; j<=i/2; j++) {
if(i%j == 0) {
sum+=j;
}
}
if(sum == i) {
System.out.println(“完数为:” + i);
}
}
}
}
程序七
这道题也是我写了几次都有。
package com.yqx.demo;
/**
- 有1、2、3、4四个数字,能组成多少个互不相同且一个数字中无重复数字的三位数?并把他们都输入。
- @author YangChingyu-k
/
public class Demo08 {
public static void main(String[] args) {
int count= 0;
for(int i=1;i<5;i++) {
for(int j=1;j<5;j++) {
for(int k=1;k<5;k++) {
if(i!=j && j!=k && i!=k) {
count++;
System.out.println(“三位数:” + (i100+j*10+k));
}
}
}
}
System.out.println(“个数:” + count);
}
}
题外
这是第一次写博客,还不是很清晰,以后会记录一些自己的学习成果,以及遇到的一些问题或者面试题之类的会写下来分享,可能有些题目很多人发过了,但是我还是想以记录学习的方式来写,第一次写,写的不好,如果有什么地方写错了或者写得不好,欢迎评论指出,谢谢~!