额 这个程序的功能真的不多 想化简二次根式也只能化简以整数为被开方数的二次根式 不过吧 由于是一个计算机程序 所以多大的数字都可以很快的化简了 不过 太大的数也是不行的 因为内存不够用

在这个程序中 有两点要说 其他的看注释吧 这里面运用了以前写的求因数的java程序里的方法 再就是判断一个数字是否为整数的方法就是将这个数除以1取余 就像这样:

Num%1==0;

这个是在java里的 其他语言类似

好吧 现在就上代码吧:

int n=in.nextInt();//接收输入的被开方的数
double ss=Math.sqrt(n);
if(((ss)%1)==0){
int sqrtN=(int)ss;
System.out.println("√"+sqrtN);
System.exit(0);
}//首先判断可不可以直接开方成整数 如果可以 则输出并退出程序

int arrLength=0;
for(int i=1;i<=n;i++){
if(n%i==0){
arrLength+=1;
}
}
int arr[]=new int[arrLength];
int j=0;
for(int i=1;i<=n;i++){
if(n%i==0){
arr[j]=i;
j++;
}
}
Arrays.sort(arr);//求出被开方数的所有因数为一个数组并排序
int a=0;//新建移到跟号外的数的变量a
for(int i=arr.length-1;i>=0;i--){
double Dou=Math.sqrt(arr[i]);
if(i!=0){
if((Dou%1==0)&&(Dou!=1)){
//将所有因数从大到小一个个试试看开方后是否为整数
//若是 将此整数的值赋给变量a 并跳出循环
a=(int)Dou;
break;
}
}else{
//若将所有的因数(除了1)开方后不是正整数 则直接输出输入的数的平方根并退出程序
int sqrtN=(int)n;
System.out.println("√"+sqrtN);
System.exit(0);
}
}
int b=n/(a*a);//求出二次根式将最大的平方因子移出根号后剩下的数
System.out.println(a+"√"+b);//输出结果
}
}

点击下载.class类文件

标签: Java, 二次根式, 作品

添加新评论