導航:首頁 > 編程語言 > 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反序數相關的資料

熱點內容
向飛雪糕給你吃是哪部電影 瀏覽:114
想找主播帶貨如何知道數據真假 瀏覽:122
韓國電影 理發師 瀏覽:740
xp升級win7下載 瀏覽:3
同款app都有哪些 瀏覽:244
男主外號叫撒旦的小說 瀏覽:382
導航APK升級文件 瀏覽:216
看未上映電影的網站 瀏覽:693
蘋果解壓有密碼的文件 瀏覽:521
5g視頻網站都有哪些 瀏覽:551
尹美麗還演過什麼 瀏覽:650
抗日奇俠之終極任務演員表 瀏覽:628
電影短片網 瀏覽:646
日本的電影大全免費看中文版 瀏覽:188
一女多男七個世界 瀏覽:733
cad文件怎麼轉換slt文件 瀏覽:948
外語電影翻譯成普通話的網站 瀏覽:381
別克怎麼用原廠電腦編程 瀏覽:125
半月談app是什麼意思 瀏覽:788
廣州正大數據恢復 瀏覽:80

友情鏈接