怎么用java代码实现开平方算法?
这是算法算法我应聘时写的算法代码,运行成功:
//这是源码用java编写的一个求2的平方根的程序,精确度可通过修改weishu参数来改变
public class app
{ //用二分法求2的平方根
public static void main(String args[])
{
int a[],b[],s[],d[],c[],ss[];
int i,j,k;
a=new int[];
b=new int[];
s=new int[];
d=new int[];
c=new int[];
ss=new int[];
boolean jingque;
jingque=true;
a[0]=b[0]=2;
a[2]=b[2]=1;
a[1]=4;
b[1]=5;
int weishu=;//定义循环次数
for(i=0;i<;i++)
s[i]=0;
for(k=0;k<weishu;k++)
{
hanshucheng.cheng(b,b,s);
j=s[0];
while (s[j]>=2)
{
hanshuadd.add(a,b,c);
hanshuchu.chu(d,c);
hanshucopy.copy(ss,b);
hanshucopy.copy(b,d);
hanshucheng.cheng(b,b,s);
j=s[0];
// for(i=0;i<=s[0];i++)
//System.out.println("s["+i+"]="+s[i]);
}
hanshucopy.copy(a,b);
hanshucopy.copy(b,ss);
}
for(i=a[0];i>=1;i--)
System.out.print(a[i]);
System.out.print("左边计算到"+a[0]+"位\n");
for(i=b[0];i>=1;i--)
System.out.print(b[i]);
System.out.print("右边计算到"+b[0]+"位\n");
for(i=a[0],j=b[0];jingque==true;i--,j--)
if(a[i]==b[j])
System.out.print(a[i]);
else
jingque=false;
System.out.print("精确到"+(a[0]-i-1)+"位\n");
}
}
class hanshucheng
{
public static void cheng( int a[],int b[],int s[])//定义两数相乘的函数
{
int flag=0,flag1=0;
int number=b[0];
int c[]=new int[];
int i,j,k,u;
for(int i1=0;i1<;i1++)
s[i1]=0;
for(i=1;i<=number;i++)
{
for(int i1=0;i1<;i1++)
c[i1]=0;
for(j=i,k=1;j<number+i;j++,k++)
{
c[j]=(a[k]*b[i]+flag)%;
flag=(a[k]*b[i]+flag)/;
}
if (flag!=0)
{
c[j]=flag;
flag=0;
j=j+1;
}
c[0]=j-1;
//for(k=1;k<=c[0];k++)
//System.out.println("c="+c[k]);
for(k=1;k<=c[0];k++)
{ u=s[k];
s[k]=(u+c[k]+flag1)%;
flag1=(u+c[k]+flag1)/;
}
if(flag1!=0)
{
s[k]=flag1;
k=k+1;
flag1=0;
}
s[0]=k-1;
// for(k=0;k<=s[0];k++)
//System.out.println(s[k]);
}
}
}
class hanshuadd
{
public static void add(int a[],int b[],int c[])//定义两数相加的函数
{
int flag=0;int i,j,k;
int a1[]=new int[];
for(i=1;i<=b[0];i++)
a1[i]=0;
for(j=b[0]-a[0]+1,k=1;j<=b[0];j++,k++)
a1[j]=a[k];
//for(k=0;k<=j;k++)
//System.out.println("a1="+a1[k]);
for(i=1;i<=b[0];i++)
{
c[i]=(a1[i]+b[i]+flag)%;
flag=(a1[i]+b[i]+flag)/;
}
if(flag!=0)
{
c[i]=flag;
i=i+1;
flag=0;
}
c[0]=i-1;
}
}
class hanshuchu
{
public static void chu(int d[],int a[])//定义任一数除以2的函数
{
int flag=0,i;
for(i=a[0];i>=1;i--)
{
d[i+1]=(flag*+a[i])/2;
flag=(flag*+a[i])%2;
}
if(flag!=0)
d[1]=5;
if(d[1]==0)
for(i=1;i<=a[0]+1;i++)
d[i]=d[i+1];
d[i]=0;
d[0]=a[0]+1;
}
}
class hanshucopy
{
public static void copy(int a[],int b[])//定义
{
int i;
for(i=0;i<=b[0];i++)
a[i]=b[i];
while (i<)
a[i++]=0;
}
}
/gamer/blog/item/ddba4d9dadf4d.html
java冒泡排序法代码
冒泡排序是比较经典的排序算法。代码如下:for(int i=1;i<arr.length;i++){
for(int j=1;j<arr.length-i;j++){
//交换位置
}
原理:比较两个相邻的代码元素,将值大的算法算法负123的源码元素交换至右端。
思路:依次比较相邻的源码两个数,将小数放在前面,代码源码例题大数放在后面。算法算法即在第一趟:首先比较第1个和第2个数,源码将小数放前,代码大数放后。算法算法然后比较第2个数和第3个数,源码将小数放前,代码大数放后,算法算法hb源码如此继续,源码直至比较最后两个数,代码将小数放前,fxz源码大数放后。重复第一趟步骤,直至全部排序完成。lyadmin源码
第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;
第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;
依次类推,每一趟比较次数-1;
……
举例说明:要排序数组:int[] arr={ 6,3,8,2,9,1};
for(int i=1;i<arr.length;i++){
for(int j=1;j<arr.length-i;j++){
//交换位置
}
参考资料:
2024-12-24 08:22
2024-12-24 08:10
2024-12-24 07:29
2024-12-24 06:52
2024-12-24 06:38