大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用Java实现的打印5位数里面所有循环圈的程序如下:
成都创新互联专注于苏尼特左网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供苏尼特左营销型网站建设,苏尼特左网站制作、苏尼特左网页设计、苏尼特左网站官网定制、小程序定制开发服务,打造苏尼特左网络公司原创品牌,更为您提供苏尼特左网站排名全网营销落地服务。
public class XunHuanQuan {
/**
* @param args 数字黑洞
*/
static int r=0;
static int b[]=new int[16];
static int c[]=new int[5];
static int sort(int n,boolean boo) //排序函数
{
int i,j,sum=0,temp;
int a[]=new int[5];
for(i=0;i5;i++)
{
a[i]=n%10;
n/=10;
}
for(j=0;j4;j++)
for(i=0;i4-j;i++)
{
if(a[i]a[i+1]boo)
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
if(a[i]a[i+1]!boo)
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
for(i=0;i5;i++)
sum+=a[i]*(int)Math.pow(10,4-i);
return sum;
}
static boolean Boo(int d[])//判断函数
{
int n,t,q,i,j;
boolean flag=true;
for(i=0;i16;i++)
for(j=i+1;j16;j++)
if(b[i]==b[j])//判断是否有循环圈存在,只需要判断是否有相同的一个数出现2次就够了
{
d[0]=i;
d[1]=j;
n=j-i;
for(q=0;q=r;q++)
for(t=i;t=j;t++)
if(c[q]==b[t]) flag=false;//用一维数组存放循环圈的一位数(任意一位都可以,这里选取第一位)
if(flag) c[r++]=b[i];//如果新生成的循环圈中的任何一位与原一维数组存放的值的不同 则再取循环圈的一位保存
return flag;
}
return flag;
}
public static void main(String[] args)
{
int n,m,w,t,p;
int r=1;
boolean flag=false;
int d[]=new int[2];
for(m=10000;m100000;m++)
{
n=m;
for(p=0;p16;p++)
{
w=sort(n,true)-sort(n,false);
b[p]=w;
n=w;
}
if(Boo(d))//输出不同的循环圈
{
System.out.printf("[");
for(t=d[0];td[1]-1;t++)
System.out.printf("%d,",b[t]);
System.out.printf("%d",b[t]);
System.out.printf("]\n");
}
}
}
}
运行结果:
[74943,62964,71973,83952]
[63954,61974,82962,75933]
[53955,59994]
这是斐波那契数列的问题
可以用递归,也可以用循环
递归:
public class Demo3 {
// 使用递归方法
private static int getFibo(int i) {
if (i == 1 || i == 2)
return 1;
else
return getFibo(i - 1) + getFibo(i - 2);
}
public static void main(String[] args) {
System.out.println("斐波那契数列的前20项为:");
for (int j = 1; j = 20; j++) {
System.out.print(getFibo(j) + "\t");
if (j % 5 == 0)
System.out.println();
}
}
}
循环:
public class Demo2 {
// 定义数组方法
public static void main(String[] args) {
int arr[] = new int[20];
arr[0] = arr[1] = 1;
for (int i = 2; i arr.length; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
System.out.println("斐波那契数列的前20项如下所示:");
for (int i = 0; i arr.length; i++) {
if (i % 5 == 0)
System.out.println();
System.out.print(arr[i] + "\t");
}
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args){
while(true){
Scanner scanner = new Scanner(System.in);
System.out.println("请分别输入头的数量和脚的数量,用空格分开:");
System.out.println("输入其它内容结束程序运行");
int heads,feet;
try{
heads = scanner.nextInt();
feet = scanner.nextInt();
}catch(Exception e){
break;
}
caculate(heads,feet);
}
}
public static void caculate(int head, int foot){
if((foot(int)1) != 0){
System.out.println("请输入偶数只脚");
return;
}
if(foot 0){
System.out.println("脚数应为非负整数");
return;
}
if(head 0){
System.out.println("头数应为非负整数");
return;
}
if(2*head foot){
System.out.println("头的数量太多");
return;
}
if(4*head foot){
System.out.println("脚的数量太多");
return;
}
int che = (4*head-foot)/2;
int rub = (foot - 2*head)/2;
System.out.println("棚内有" + che + "只鸡和" + rub + "只兔子");
}
}