楼主的第一题和第四题,我没有看明白 给出的数第二题和第三题的代码// 求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(){
for(int i=1; i<=1000000; i++){
int tmp = i;
while(tmp > 0) {
if(tmp%10 == 0)
count ++;
tmp /= 10;
}
} return count;
给出的数第二题和第三题的代码// 求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;
}
/**
* 求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型都已经不够位数了!不知道这题是怎么个意思?
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);