JAVA经典算法50题(16)

时间:2026-01-19

0000000; i++) {
s = "" + i;
boolean flag = true;
char[] c = s.toCharArray();
for (int j = 0; j < c.length; j++) {
if (!fun(c[j])) {
flag = false;
break;
}
}
if (flag && isJiShu(i)) {
count++;
}
s = "";
}
System.out.println("共" + count + "个。");
}
}
数学算法:
public class Demo43 {
public static void main(String[] args) {
// 因为是奇数,所以个位只能是1,3,5,7共4种,前面可随便排列
int count = 4;// 个位的4种
// 2位时,十位有8种,个位4种,8×4
// 3位时,8×8×4……
for (int i = 1; i < 8; i++) {
count = 8 * count;
System.out.println("count:" + count);
}
}
}
个人算法:
//组成1位数是4个。
//组成2位数是7*4个。
//组成3位数是7*8*4个。
//组成4位数是7*8*8*4个。
//......
public class Demo43 {
public static void main (String[] args) {
int sum=4;
int j;
System.out.println("组成1位数是 "+sum+" 个");
sum=sum*7;
System.out.println("组成2位数是 "+sum+" 个");
for(j=3;j<=9;j++){
sum=sum*8;
System.out.println("组成"+j+"位数是 "+sum+" 个");
}
}
}

【程序44】 题目:一个偶数总能表示为两个素数之和。(注:哥德巴赫猜想是想证明对任何大于6的自然数n之内的所有偶数可以表示为两个素数之和)
public class Demo44 {
public static boolean isSuShu(int x) {
if (x == 0 || x == 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(x); i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
// 求了下100以内的情况
for (int i = 0; i < 100; i = i + 2) {
for (int j = 0; j <= (i + 1) / 2; j++) {
if (isSuShu(j) && isSuShu(i - j)) {
System.out.println(i + "=" + j + "+" + (i - j));
}
}
}
}
}

public class Demo44{
public static void main(String[] args){
for (int i=6;i<=100 ;i+=2 ){
for (int j=2;j<100 ;j++ ){
if(!isPrime(j)||!isPrime(i-j)||j>=i)
continue;
System.out.println(i+"="+j+"+"+(i-j));
break;
}
}
}

public static boolean isPrime(int n){
for (int i=2;i<n ;i++ ){
if(n%i==0)return false;
}
return true;
}
}

【程序45】 题目:(1)判断几个9能被一个素数整除。(2)判断一个整数能被几个9整除。(原题:一个素数能被几个9整除)
(一)
public class Demo45 {
public static boolean isSuShu(int x) {
if (x == 0 || x == 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(x); i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
int[] a = new int[1
00];
int n = 0;
int num = 0;
// 长度100的素数数组
while (n < 100) {
if (isSuShu(num)) {
a[n] = num;
n++;
num++;
} else {
num++;
}
}
/*

…… 此处隐藏:42字,全部文档内容请下载后查看。喜欢就下载吧 ……
JAVA经典算法50题(16).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219