Java代码练习,java代码
分享于 点击 34626 次 点评:232
Java代码练习,java代码
1、
代码:
public class xixueguidigital_2 {
public static void main(String[] args) {
int a,b,c,d;
int s[]=new int[4];
boolean flag ;
for(int i=1000;i<10000;i++){
s[0]=i/1000;
s[1]=i%1000/100;
s[2]=i%100/10;
s[3]=i%10;
flag = false;
/*有了这个就不会造成1260=21*60和1260=60*21两种输出了,
发现了1260,不会再继续查找abcd了*/
if(s[2]==0&&s[3]==0){
continue;
}
for(int j1=0;j1<s.length;j1++){
a=s[j1];
if(a!=0){
for(int j2=0;j2<s.length;j2++){
if(j2!=j1) {
b=s[j2];
for(int j3=0;j3<s.length;j3++){
if(j3!=j1&&j3!=j2)
{
c=s[j3];
if(c!=0)
{
for(int j4=0;j4<s.length;j4++){
if(j4!=j1&&j4!=j2&&j4!=j3)
{
d=s[j4];
int sum=(a*10+b)*(c*10+d);
if(i==sum && flag == false)
{
flag = true;
System.out.print(i+"=");
System.out.println((a*10+b)+"*"+(c*10+d));
break;
}
}
}
}
}
}
}
}
}
}
}
}
}
输出结果:
1260=21*60
1395=15*93
1435=41*35
1530=51*30
1827=87*21
2187=27*81
6880=86*80
2、用递归编程求斐波那契数列f(n),已知f1=1;f2=1,以后每项都是前两项的和。
import java.util.ArrayList;
import java.util.Scanner;
public class Fibonacci {
public static void main(String args[]){
Scanner s = new Scanner(System.in);
System.out.println("请输入项数:");
int n=s.nextInt();
s.close();
ArrayList<Integer> list=new ArrayList<>();
for(int i=1;i<=n;i++){
list.add(function(i));
}
System.out.println("斐波那契数列:");
for(int i=0;i<n;i++){
System.out.print(list.get(i)+" ");
}
}
//递归
public static int function(int n){
if(n==1 || n==2)
return 1;
return function(n-1)+function(n-2);
}
}
输出结果:
请输入项数:
9
斐波那契数列:
1 1 2 3 5 8 13 21 34
3、如何利用筛选法查找100以内的素数?
代码如下:
public class findsushu {
public static void main(String[] args) {
int i,j;
int a[]=new int[101];
for (i = 1; i < 101; i++) {
a[i]=1;//将整个数组初始化为1
}
for(i=2;i<101;i++){
if(a[i]!=0)
{
for(j=i+i;j<101;){
if(j%i==0){
a[j]=0;
//将所有2、3、5、7等等的倍数都标记为0(由于4和6是2的倍数已经被标记为0了,所以跳过);
j=j+i;
}
}
}
}
for(i=2;i<101;i++){
if(a[i]!=0)
{
System.out.print(i+" ");
}
}
}
}
输出结果为:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
4、如何用开根号的方法求100以内的素数?
代码如下:
public class findsushu_1 {
public static void main(String[] args) {
int i,j,k;
for(i=1;i<101;i++){
k=(int) Math.sqrt(i);
for (j = 2; j <= k; j++) {
if(i%j==0){
break;
}
}
if(j>k){
System.out.print(i+" ");
}
}
}
}
输出结果为:
1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
相关文章
- 暂无相关文章
用户点评