导航:首页 > 编程语言 > java反序数

java反序数

发布时间:2021-04-21 04:44:15

java怎么实现逆序数计数,时间复杂度为O(n)

实现逆序数计数,时间复杂度为O(n)
publicclassMaxSumOfArray{


publicstaticvoidmain(Stringargs[]){

System.out.print(max_sum());
}
publicstaticintmax_sum(){
int[]array={-2,11,-4,13,-5,-2};
intmax_sum=0;
intarray_sum=0;
for(intj=0;j<array.length;j++)
{
array_sum+=array[j];
if(array_sum<0){
max_sum=0;
}
if(array_sum>max_sum)
{
max_sum=array_sum;
}
}
returnmax_sum;

}
}

❷ JAVA输入一个数字逆序输出

你的Java程序错在用变量a去计算位数,导致a为0,所以后面的结果都为0,应该把a赋给一个临时变量t,用t去计算位数。

还有你的逆序算法有问题,不但复杂,而且结果不是逆序。

我给你一个Java语言的逆序算法,你看看吧.

import java.util.Scanner;

public class nx{

public static void main(String[] args){

Scanner s=new Scanner(System.in);

int a=s.nextInt();

while(a>0){

System.out.print(a%10);

a=a/10;

}

}

}

❸ 怎样求数组中逆序数对的个数(java)

privatestaticintmethod(int[]array){
intcount=0;
for(inti=0;i<array.length;i++){
for(intj=i+1;j<array.length;j++){
if(array[i]>array[j]){
count++;
}
}
}
returncount;
}
privatestaticintcount=0;

privatevoidcount(int[]array){
intlength=array.length;
intleft=(int)(length/2+0.5);
intright=length/2;
int[]leftArray=newint[left];
int[]rightArray=newint[right];
System.array(array,0,leftArray,0,left);
System.array(array,left,rightArray,0,right);
if(left>1&&right>1){
count(leftArray);
count(rightArray);
}
Arrays.sort(leftArray);
Arrays.sort(rightArray);
mergeCount(leftArray,rightArray);
}

privatevoidmergeCount(int[]leftArray,int[]rightArray){
intleftLength=leftArray.length;
intrightLength=rightArray.length;
while(leftLength>0&&rightLength>0){
if(leftArray[0]>rightArray[0]){
count=count+leftLength;
System.array(rightArray,1,rightArray,0,rightLength-1);
rightLength--;
}else{
System.array(leftArray,1,leftArray,0,leftLength-1);
leftLength--;
}
}
}
privatestaticNode[]nodes;
privatestaticint[]tree;
privatestaticint[]reflect;
privatestaticintlength;

privatestaticintcountArray(int[]array){
init(array);
returndoCount();
}

privatestaticintdoCount(){
for(inti=0;i<length;i++){
reflect[nodes[i].pos]=i+1;
}

intcount=0;
for(inti=1;i<=length;i++){
update(reflect[i]);
count=count+i-sum(reflect[i]);
}

System.out.println(count);
returncount;
}

privatestaticvoidinit(int[]array){
length=array.length;
nodes=newNode[length];
reflect=newint[length+1];
tree=newint[length+1];
for(inti=0;i<length;i++){
nodes[i]=newNode();
nodes[i].value=array[i];
nodes[i].pos=i+1;
}
Arrays.sort(nodes,Comparator.comparingInt(o->o.value));
}

privatestaticintlowbit(intx){
returnx&(-x);
}

privatestaticvoipdate(intpos){
while(pos<=length){
tree[pos]+=1;
pos+=lowbit(pos);
}
}

privatestaticintsum(intpos){
intsum=0;
while(pos>0){
sum+=tree[pos];
pos-=lowbit(pos);
}
returnsum;
}

publicstaticvoidmain(Stringargs[]){
int[]array={40000000,20000000,3000000,534435454,732123434,167675688,46565656,8};
System.out.println(countArray(array));
}

//---------------//
classNode{
intvalue;
intpos;
}

❹ java怎么把字符串反序排列

StringBuilder类中来有一个方法reverse()可以实现源,像楼上的思路,是reverse这个方法具体实现。
不过他写的代码是不错。可是还少了一点东西。
String s = "abcdefg";
char [] chs = s.toCharArray();
for(int i=chs.length-1;i>0;i--){
System.out.print(chs[i]);
}
下面是调用API操作的。
String s = "abcdefg";
StringBuilder a = new StringBuilder(s);
System.out.println(a.reverse());

❺ 用java反序输出数组a[]={7,8,6,4,2}

publicclassNot{
/**
*反序输出数组里面的所有元素
*
*@paramarr
*/
publicstaticvoiddisplay(int[]arr){
if(null==arr){
return;
}
for(intindex=arr.length-1;index>=0;index--){
System.out.print(arr[index]+"");
}
}

publicstaticvoidmain(String[]args){
int[]arr={7,8,6,4,2};
display(arr);
}

}

❻ JAVA求四个正整数,逆序数1234。这些求余怎么求啊!

用求余数的方法,求一个四位正整数的逆序数的Java程序如下:

importjava.util.Scanner;
publicclassAA{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.print("请输入一个四位正整数:");
intn=sc.nextInt();
if(n<1000||n>9999){
System.out.println("您输入的不是一个四位正整数!");
}else{
inta,b,c,d,result;
a=n/1000;//取四位正整数的千位数
b=n/100%10;//取四位正整数的百位数
c=n/10%10;//取四位正整数的十位数
d=n%10;////取四位正整数的个位数
result=d*1000+c*100+b*10+a;
System.out.println("四位正整数"+n+"的逆序数为:"+result);
}
}
}

运行结果:

请输入一个四位正整数:1234
四位正整数1234的逆序数为:4321

❼ Java倒序输出数字

import java.util.Scanner;

public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] ch = null;
System.out.println("请输入源一个十位数的数字");
String str = sc.next();
if (str.trim().length() != 10) {
System.out.println("你输入的数字格式不正确,清检查后重新输入");
}else {
ch = str.toCharArray();
}
for (int i = ch.length; i > 0 ; i--) {
System.out.print(ch[i-1]);
}
}
}

❽ java .给定一个五位数,然后把它逆序输出.

new StringBuilder().append(12345).reverse().toString()

❾ 在JAVA中实现数字的倒序输出

你的意思是1234然后输出4321吗?那可以把1234以string形式存放在一个数组里,然后int i=4;i>.0;i--形式输出,不就反过来了。

❿ 用java实现整型反序

publicclassNumberInverse
{

privateintamount;
privateStringstringOutput;
privateintinverseInt;

publicNumberInverse(intinput)
{
if(input>99999||input<-99999)
{
System.out.println("请输入一个小于5位的整数");
return;
}
//位数
amount=Integer.toString(Math.abs(input)).length();
//空格显示
for(charc:Integer.toString(Math.abs(input)).toCharArray())
{
if(stringOutput==null)
{
stringOutput="";
}
stringOutput+=String.format("%s%s",String.valueOf(c),
"");
}
stringOutput=input>=0?stringOutput:String.format(
"-%s",stringOutput);
//逆序
Strings="";
for(inti=this.getAmount()-1;i>=0;i--)
{
s+=String.valueOf((Integer.toString(Math.abs(input))
.toCharArray())[i]);
}
inverseInt=input>=0?Integer.parseInt(s):Integer
.parseInt(String.format("-%s",s));
}

publicintgetAmount()
{
returnamount;
}

publicStringgetStringOutput()
{
returnstringOutput;
}

publicintgetInverseInt()
{
returninverseInt;
}

/**
*测试
*
*@paramargs
*/
publicstaticvoidmain(String[]args)
{
NumberInversen=newNumberInverse(-32345);
System.out.println(n.getAmount());//打印位数
System.out.println(n.getStringOutput());//打印格式化字符串
System.out.println(n.getInverseInt());//打印逆序的数字
}
}

阅读全文

与java反序数相关的资料

热点内容
双击cad文件就启动新软件 浏览:939
有什么登记天数的app 浏览:846
qq性别修改器 浏览:533
rtl8192elinux 浏览:15
手机中qq群怎么改名字怎么改 浏览:621
微信小视频怎么用前置摄像头吗 浏览:572
c语言怎么用编程测标识符的合法性 浏览:815
iphone5s驱动下载 浏览:336
欣向路由器密码 浏览:850
sql数据库对比工具 浏览:575
300ap升级 浏览:981
为什么从邮箱里下载文件会不全 浏览:913
java大数据乘整数 浏览:136
cad打开文本txt文件 浏览:472
征途账号存在哪些文件 浏览:412
天气肇庆市路况工具 浏览:950
怎么导入js文件怎么打开 浏览:517
win8和linux双系统安装 浏览:328
苹果5按屏幕有紫色 浏览:272
qq已失效的文件怎么找回 浏览:63

友情链接