重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
public class Test {
成都创新互联专注于团风网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供团风营销型网站建设,团风网站制作、团风网页设计、团风网站官网定制、重庆小程序开发服务,打造团风网络公司原创品牌,更为您提供团风网站排名全网营销落地服务。
private int HASH_LOG = 14;
private int HASH_SIZE=(1 HASH_LOG);
private int HASH_MASK=(HASH_SIZE - 1);
public Long flz_hash(Long a){
Long l1 = 2654435769L;
Long index = (a * l1) 32-HASH_LOG;
return index HASH_MASK;
}
public static void main(String[] args) {
Test test = new Test();
long a = 2;
Long index = test.flz_hash(a);
System.out.println(index);
}
}
1、C++如何接受Java的完全面向对象
JAVA是一种完全面向对象的语言。这意味着你对任何一个Java对象所做的动作都是通过一个方法实现的。
第一点就是,再也没有没有主函数这样的孤立的东西了。取而代之的是,你必须开始用一个对象的看法看待一个程序,一个类的对象。
但是这个对象又什么对象呢? 大多数Java程序只是简单的通过继承Java基础类Object来实现所需要的东西,但是你可以通过创建程序基础类用于多个特性相似的应用程序来节省时间。 严格的面向对象的规定意味着理用原有的C/C++代码不可以直接不加改动的使用;系统调用也是这样的。C++中,你可以通过在C++正常的命名空间外声明extern"C"来使用原有的C的过程调用,包括系统调用。
2、Java在虚拟机上运行
Java源代码并不是被编译成为普通的机器代码。而是被翻译成为虚拟机可以执行的代码。一个Java解释器最终执行这些代码。
这其中没有连接的过程;解释在需要的时候动态的加载一些类; 在Java中,只有一个类似的安全回溯的方法,但是并不是十分简单的方法。你必须定义一个本地方法,其目的是为C语言提供接口,然后提供连接的介质。Java环境提供了完成这种任务的工具,但是整个过程和C++中提供的extern比微不足道,完成使用C++类的过程则更加复杂,因为这样会引入对C的借口和C函数和C++成员函数的问题。
3、许多常用的系统实用工具函数已经在系统类中的方法中提供出来,但是这些明显没有包含经过许多年来你所创建的那些类和过程。
所以,在你需要的时候你应该去钻研一下。 也有一些软件,可以实现C#代码转换java工具 C#转java代码转换工具(C# to Java Converter)一个很强大的工具, 能将c#代码片段、文件甚至工程直接转换成java代码,并能彻底解决外部引用的DLL问题,最强的是支持c#工程的直接转换,生成的Java代码质量也很不错。
软件已破解,去除了未注册版最多只能转换1000行的限制,亲测可用!压缩包内含帮助文档,不过由于软件的使用很简单,帮助文档基本可以忽略。
package dis;
import java.io.*;
import java.math.*;
public class dis
{
public static void main(String [] s) throws Exception
{
Float a,b,c;
double x2;
double x1;
System.out.println("请输入a, b, c的值");
BufferedReader bReader=new BufferedReader(new InputStreamReader(System.in));
a=Float.parseFloat(bReader.readLine());
b=Float.parseFloat(bReader.readLine());
c=Float.parseFloat(bReader.readLine());
if (b*b - 4*a*c = 0)
System.out.println("输入的系数不对,b2-4ac不大于0!程序退出!");
else
{
x1 = (-b + Math.sqrt(b*b - 4*a*c))/2*a;
x2 = (-b - Math.sqrt(b*b - 4*a*c))/2*a;
System.out.println("x1 = "+ x1);
System.out.println("x2 = "+x2);
}
return;
}
}
import java.util.Arrays;
import java.util.Scanner;
public class A {
static final int maxn=100000+5;
static long[] a=new long[maxn],t=new long[maxn];
static long ans=0;
static void mymerge(int x,int m,int y) {
int tx=x,tm=m+1;
int k=0;
while(tx=m tm=y) {
if(a[tx]=a[tm])
t[k++]=a[tx++];
else {
ans+=m-tx+1;
a[k++]=a[tm++];
}
}
while(tx=m) t[k++]=a[tx++];
while(tm=y) t[k++]=a[tm++];
for(int i=0;ik;i++)
a[x++]=t[i];
}
static void mergesort(int x,int y) {
if(x==y)return ;
int mid=(x+y)/2;
int xx=x,yy=y;
mergesort(xx,mid);
mergesort(mid+1,yy);
mymerge(xx,mid,yy);
//System.out.println(xx+" "+mid+" "+yy);
}
public static void main(String[] arg) {
int n,k;
Scanner input=new Scanner(System.in);
while(input.hasNext()) {
n=input.nextInt();
k=input.nextInt();
Arrays.fill(a, 0);
Arrays.fill(t, 0);
for(int i=0;in;i++) {
a[i]=input.nextLong();
}
ans=0;
mergesort(0, n-1);
if(kans)
System.out.println("0");
else
System.out.println((ans-k)+"");
}
}
}
完整的直译为java方法是这样的,但是这样写dataLen的值必须小于等于数组长度,不然会出现下标越界的异常
public int accumulativeVerification(int[] data, int dataLen) {
int sum = 0;
for (int i = 0; i dataLen; i++) {
sum += data[i];
}
return sum;
}
如果是意译(计算int数组的所有数之和),那么java可以这样写
public int accumulativeVerification(int[] data) {
int sum = 0;
for (int i = 0; i data.length; i++) {
sum += data[i];
}
return sum;
}
修改成Java后的代码:
public class Demo {
public static int gcd(int a, int b, int c) {
int min, i;
if(a b) {
if(b c) {
min = c;
} else {
min = b;
}
} else {
if(a c) {
min = c;
} else {
min = a;
}
}
if(b c) {
if(c a) {
min = a;
} else {
min = c;
}
} else {
if(b a) {
min = a;
} else {
min = b;
}
}
if(a c) {
if(c b) {
min = b;
} else {
min = c;
}
} else {
if(a b) {
min = b;
} else {
min = a;
}
}
for(i=min; i=1; i--) {
if(a%i==0 b%i==0 c%i==0) {
break;
}
}
return i;
}
public static void main(String[] args) {
int a = 1, b = 0, c = 0, i, k = 0, j = 0, m = 0, n = 0, z, y;
while(a 9) {
b = 1;
while(b 9) {
c = 1;
while(c 9) {
if(gcd(a,b,c) == 1) {
System.out.println(a + ";" + b + ";" + c);
k++;
z = b*b - 4*a*c;
if(z == 0) {
j++;
} else if(z 0) {
m++;
for (y=1; yz/2; y++) {
if (y*y==z) {
System.out.println("解答是有理数。");
}
}
} else {
n++;
}
}
c++;
}
b++;
}
a++;
}
System.out.println("N = " + k);
System.out.println("N2 = " + j);
System.out.println("N3 = " + m);
System.out.println("N4 = " + n);
i = gcd(a, b, c);
}
}