几道简单的算法编程题

程序一

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(a
aa + 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(“三位数:” + (i
100+j*10+k));
}
}
}
}
System.out.println(“个数:” + count);
}
}

题外

这是第一次写博客,还不是很清晰,以后会记录一些自己的学习成果,以及遇到的一些问题或者面试题之类的会写下来分享,可能有些题目很多人发过了,但是我还是想以记录学习的方式来写,第一次写,写的不好,如果有什么地方写错了或者写得不好,欢迎评论指出,谢谢~!

猜你喜欢

转载自blog.csdn.net/YangChingyuk/article/details/89490495