當前位置:首頁 » 編程語言 » java10001000

java10001000

發布時間: 2022-04-28 19:24:26

Ⅰ 急求!用java算1到1000階乘的末尾有幾個零

可以認為,有多少組2、5,結尾就有多少個0 */
/* 操作方法:操作1到1000中所有的數,看每個數能被2和5整除幾次,並分別統計,假設被2整除8次,被5整除12次,那我們可以認為有8組(2,5),即8個0*/

//被2整除的次數之和
int count2 = 0;
//被5整除的次數之和
int count5 = 0;

//遍歷所有的數
for (int number = 1; number <= 1000; number ++) {
int dynmicNumber = number;//該數的一個復制,用於不數的整除用
while (dynmicNumber % 2 == 0) { //統計該數能被2整除多少次,但是並不單獨統計,而是統計到全局
count2++;
dynmicNumber /= 2;
}
while (dynmicNumber % 5 == 0) { //統計該數能被2整除多少次,但是並不單獨統計,而是統計到全局
count5++;
dynmicNumber /= 5;
}
}

System.out.println("結尾0的個數為:" + Math.min

Ⅱ 怎麼修改java游戲屏幕大小

所謂暴力移植游戲,就是用WINHEX等16進制修改工具直接編輯游戲的CLASS,要運用這種方法,首先要安裝 JAVA反編譯工具(最好找個國產的,用外國的反編譯出來中文是不能正常顯示的,所以我開始時都是要猜位置,現在習慣了所以還是用DJ),16進制編輯工具,中文模擬器,JavaMagic(主要是懶於自己修改鍵位),計算器。而移植的游戲主要是針對S60的游戲,而且解壓出來有圖片的游戲移植更加容易。 工具齊了,就開始移植,先用JavaMagic修改好鍵位,然後用模擬器試運行,可以瞭然後解壓,反編譯CLASS文件,然後正式開始移植了。 首先CLASS反編譯出來的文件直接用CTRL+F搜索draw,其中圖片顯示的函數是drawImage,文字顯示的函數是drawString,搜索draw是確定CLASS文件中是否有需要改的地方,那麼找到文件了,比如a.class反編譯的a.jad中搜索出drawImage或drawString,就是說裡面有決定JAVA文字或圖片的函數,其格式通常是: drawImage(a, 10, 20, 20) drawString(b, 100, 208, 20)或drawString("文字", 10, 20, 20) (還有其他的一些DRAWXXXX函數不一一細說了,都是差不多的,主要是我不甚記得其意義) 10,20代表圖片文字開始顯示的位置,左上角那點表示0,0前面那個是橫 後面那個是縱 其中a和b是被定義圖片文字的代碼在上面你基本上可以搜索到 a = xx("xxx.png")b = xxx("文字") 其中不是用中文軟體反編譯的文字是不能正常顯示的。 地方找到了,就要開始修改,用WINHEX等直接打開a.class, 搜索100A(16進制的10)1014(16進制的20)(需要用計算器將10進制改為16進制),搜索前最好確定上文中有多少個10,20這樣的組合以確定位置,搜索到了就直接修改,比如改為0,0: 100A1014 —— 10001000,這樣就達到修改的目的,而a所代表的圖片的起始位置就到了0,0,同樣文字也是這樣修改。 所以通常是先用模擬器確定需要修改的圖片顯示位置,再改到適合位置,不斷調試。 還有要說明的是數值顯示的方式 通常是 0-5 03-08(通常有一些比較小的數字是這樣顯示的) 0-127 1000-107F 128-208 110080-1100D0 比如132,你就要搜索110084 方法是這樣了,那麼下面就談一下技巧 技巧一: 因為S60的游戲是176*208的,而移植的目的是改為132*176 而很多圖片是從中間顯示的,比如(88,XX),只要改為(66,XX)就可以顯示到中間了,即將1058改為1042,當然改的時候要搜索清楚才改。 還有是有一些可以直接改176,208,成為132,176就可以的,即是1100B01100D0改為1100841100B0 技巧二: 有一些游戲其位置是用字母顯示的,比如a+k,b+y等,見到這種情況的話就先看前面有沒有寫a = xx,b=xx,x=xx,y=xx,應為有一些是自動適應高度長度的,比如a=getlength那就不用改,但是要是沒有的話就要改成適當的數字 技巧三: 有一些是集合數字和字母的,字母就看有沒有定義個別的數值,比如A=176等,而數字就要改到適當位置。 技巧四: 有一些位置直接修改圖片而不用修改文件可以達到移植的目的

Ⅲ java求1000的階乘

int[] res = new int[3000];
final int limit = 1000;

res[1] = 1; //0405
int max_now = 1;

for(int step = 1; step <= limit;step++)
{
int temp = 0;
int now = max_now; //40320
int zero;
for(zero = 1; zero <=now;zero++)
{
if(res[zero] != 0)
break;
}

for(int carry = zero-1;carry <= now;carry++)
{
res[carry] *= step;
res[carry] += temp;
temp = 0;
if(res[carry] >= 10)
{
int carry_temp = carry;
temp = res[carry];
if(carry_temp <= max_now)
{
res[carry_temp] = temp%10;
temp/=10;
carry_temp++;
}
if(carry_temp > max_now)
{
while(temp >= 10)
{
res[carry_temp] = temp%10;
temp /= 10;
carry_temp++;
}
res[carry_temp] = temp;
temp = 0;
max_now = carry_temp;
}
}
}

}
System.out.println(max_now);
for(int j = max_now; j > 0; j--)
{
System.out.print(res[j]);
}

Ⅳ java 數據類型基礎問題 高分

inta=0x7fffffff;
floatb=a;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println(Integer.toBinaryString(a));
intc=Float.floatToIntBits(b);
System.out.println(Integer.toBinaryString(c));

結果:

這倆個二進制數都是不帶符號位的

我們給他們補上符號位然後分段看

0 1111 1111 1111 1111 1111 1111 1111 111

0 10011110 0000 0000 0000 0000 0000 000

很明顯int的尾數位比float的尾數位要多,而被丟棄的尾數為被「四捨五入」的進位了,這里或許應該叫做0舍1入比較恰當而且,依次進位後所有的尾數都成了0而,最高的尾數為則將進位進到了指數位,樓主嘗試輸出一下double型就看出來了

0 10011110 0000 0000 0000 0000 0000 0000

0 10000011101 1111 1111 1111 1111 1111 1111 1111 110000000000000000000000

明顯float和double的指數位不同,這就是尾數四捨五入後向指數進位造成的


好久沒看這種基礎的東西了,照著書現學現賣,有錯誤請樓主指出哈~

熱點內容
神秘顧客訪問 發布:2025-05-15 20:33:39 瀏覽:296
安卓市場手機版從哪裡下載 發布:2025-05-15 20:17:28 瀏覽:814
幼兒速演算法 發布:2025-05-15 20:15:08 瀏覽:86
best把槍密碼多少 發布:2025-05-15 20:13:42 瀏覽:548
android安裝程序 發布:2025-05-15 20:13:20 瀏覽:559
c語言跳出死循環 發布:2025-05-15 20:06:04 瀏覽:824
a19處理器相當於安卓哪個水平 發布:2025-05-15 20:05:29 瀏覽:639
榮耀9i安卓強行關機按哪個鍵 發布:2025-05-15 20:00:32 瀏覽:750
密碼鎖寫什麼最好 發布:2025-05-15 19:05:31 瀏覽:783
5的源碼是 發布:2025-05-15 19:04:07 瀏覽:719