java第三周--(输出任意数之间的所有完数;3位数的任意整数,输出其降序数)

1.编写一个Java程序,输出任意数之间的所有完数。

 //输出任意数之间的所有完数
package ou.yantai;
import java.util.*;
public class Wanshu {
	
	
	public static void main(String[] args) {
		  
		
		  System.out.println("输出任意数:");

		  int b;
		  Scanner  sca=new Scanner(System.in);
		  b=sca.nextInt();
		  Wanshu  w=new Wanshu(b);  
	}

public Wanshu(int a)
  {
	
	  System.out.println("输出任意数"+a+"之间的所有完数:");
	  for(int j=1;j<=a;j++)
	  {
		  int sum=0; 
		  for(int i=1;i<j;i++)
		  {
			  
			  if(j%i==0)
			  {
				  sum=sum+i;
				  
			  }
		  }
		  if(sum==j)
		  {
			  System.out.println("此数为完数:"+j);
			  
		  }
		
		  } 
  }
}

2,对于一个大于3位数的任意整数,输出其降序数

//功能:对于一个大于3位数的任意整数,输出其降序数。
//2012.10.07
package ou.yantai;
import java.util.*;
public class Dpx {

	
	public static void main(String[] args) {
       System.out.println("对于一个大于3位数的任意整数:");
       Scanner  sca=new Scanner(System.in);
       int b=sca.nextInt();
      //思路:求出每一位数,将其放到数组中去
       int d=weishu(b);//先调用weishu()求出这个数的位数;
       if(d<=3)
       {
    	   System.out.println("输入不合法!!!");
       }
       else
       {
		   int[] a=new int[d];
		   for(int j=0;j<d;j++)
		      {
		    	 int c=b%10;
		    	 a[j]=c;
		    	 
		    	 b=(b-c)/10;
	          }
	       System.out.print("降序数:");
	       for(int j=0;j<d;j++)
	       System.out.print(a[j]);
      }
      
	}
    public static int weishu(int t)//求位数
    {
        int a=1;
        int i;
        for(i=1; ;i++)
        {
	      	  int  c=t;//注意此语句要在for内
	      	    a=a*10;
	      	    c=c%a;
	      	  
	      	  if(c==t)
	      	  {
	      		
	      		  return i;
	      	  
	      	  }
        }
		
    	
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值