1. 求10的40次方和20的30次方的公因数的数目。2. 求从1到1000000的整数中,0出现的次数。3. 从{1,2,...50}中找到两个数{a,b},使其满足
   (1)|a-b|=5;  (2)|a-b|<=54. 证n的2次方的正除数的数目是奇数;

解决方案 »

  1.   

    1. 40个2*5  和 30个 2*2*52.  int count = 0;
    for(int i=1; i<=1000000; i++){
    int tmp = i;
    while(tmp > 0) {
    if(tmp%10 == 0)
    count ++;
    tmp /= 10;
    }
    } return count;
      

  2.   

    楼主的第一题和第四题,我没有看明白
    给出的数第二题和第三题的代码// 求1-1000000的整数中,0出现的次数
    public int getZero() {
    int num = 0;
    for (int i = 1; i <= 1000000; i++) { if (i % 10 == 0) {
    num = num + 1;
    }
    }
    return num;
    }
    //从{1,2,...50}中找到两个数{a,b},使其满足 (1)|a-b|=5;  (2)|a-b| <=5 
    public boolean Find_Array(){

    boolean flag=false;
    //得到{1,2,3......50}
    int[]arr=new int[50];
    for(int i=1;i<=50;i++){

    arr[i-1]=i;
    }
    int Rm1,Rm2;//随机数
    Rm1=(int)(Math.random()*10);
    Rm2=(int)(Math.random()*10);
    if(Rm1==Rm2){
    Rm2=(int)(Math.random())*10;
    }
    if(Math.abs(arr[Rm1]-arr[Rm2])==5&&Math.abs(arr[Rm1]-arr[Rm2])<=5){
    System.out.println("a="+arr[Rm1]);
    System.out.println("b="+arr[Rm2]);
    flag=true;
    }else{
    Find_Array();
    }
    return flag;
    }
      

  3.   

    第二题我的这篇blog已经给出答案了,我想大家都理解错了。几个典型问题的求解
      

  4.   

    package csdn.exe;public class CommonFactorTest {
    /**
     * 求10的10次方和20的10次方的公因数的数目
     */
    public static void main(String[] args) {
    long a=10;
    long b=20;
    int index=0;
    for(int i=1;i<2;i++){
    a*=10;
    }
    for(int j=1;j<2;j++){
    b*=20;
    }
    //System.out.println("a:"+a+"\n"+"b:"+b);
    long min=(a>b)?a:b;
    for(int i=1;i<=min;i++){
    if(a%i==0 && b%i==0){
    //System.out.print(i+" ");
    index++;
    }
    }
    System.out.println(index);
    }
    }这数太大了吧?我算的是10的2次方和20的2次方的公因数,最后index的值就是公因数的数目
    你可以把循环次数改一下就可以,但是10的40次方我用long型都已经不够位数了!不知道这题是怎么个意思?
      

  5.   

    第二道题:
    int k=0;
    for(int i=1;i<=1000000;i++){
    String m=i+"";
    char[] ch=m.toCharArray();
    for(int j=0;j<ch.length;j++){
    if(ch[j]=='0'){
    k++;
    }
    }
    }
    System.out.println(k);