public?class?Test?{

在故城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站制作,故城網(wǎng)站建設(shè)費(fèi)用合理。
public?static?void?main(String[]?args)?{
int?N?=?5;//如果最大的數(shù)字是25的話(huà)就有5行5列
int?M?=?N;//用去輸出的for循環(huán)
int?n?=?N?-?1;//數(shù)組從0開(kāi)始,所以下標(biāo)比實(shí)際少1
int?NN?=?N?*?N;//最大的那個(gè)數(shù)字,即25
int?min?=?0;//計(jì)數(shù)用,0為最外一層
int[][]?a;//先在數(shù)組里面排列好
a?=?new?int[100][100];
while(n??min)?{
for(int?i?=?min;?i?=?n;?i?++)?{//當(dāng)min=0時(shí),即?25到21;當(dāng)min=1時(shí)即10到7。。。
a[i][min]?=?NN;
NN?--;
}
for(int?i?=?min?+?1;?i?=?n;?i?++)?{//20到17
a[n][i]?=?NN;
NN?--;
}
for(int?i?=?n?-?1;?i?=?min;?i?--)?{//16到13
a[i][n]?=?NN;
NN?--;
}
for(int?i?=?n?-?1;?i??min;?i?--)?{//12到10
a[min][i]?=?NN;
NN?--;
}
n?-=?1;
min?+=?1;
}
a[n][n]?=?1;?//這一句應(yīng)該可以不寫(xiě)的,但我程序出bug了,不想花太多時(shí)間解決
for(int?i?=?0;?i??M;?i?++){
for(int?j?=?0;?j??M;?j?++)
System.out.print(a[i][j]?+?"\t");
System.out.println();
}
}
}
結(jié)果如下
25 10 11 12 13
24 9 2 3 14
23 8 1 4 15
22 7 6 5 16
21 20 19 18 17
代碼如下,望采納
public?class?PrintPrime{
public?static?void?main(String?args[]){
//設(shè)置一個(gè)計(jì)數(shù)變量count,用于統(tǒng)計(jì)一行當(dāng)中已經(jīng)輸出數(shù)字的個(gè)數(shù)
int?count?=?0;
//寫(xiě)代碼時(shí)人為判斷200為非素?cái)?shù),如果不考慮題目的嚴(yán)格要求的話(huà),可以寫(xiě)成200
for(int?i?=?100;i=200;i++){
//判斷數(shù)字是否為素?cái)?shù),若是,則count+1并輸出數(shù)字
if(PrintPrime.IsPrime(i)){
count++;
System.out.print(i+"?");
}
//如果一行十個(gè)已經(jīng)輸出完畢,計(jì)數(shù)歸零,換行
if(count==10){
count=0;
System.out.println();
}
}
}
//判斷數(shù)字是否為素?cái)?shù)
public?static?boolean?IsPrime(int?n){
//如果小于等于三,則大于一即為素?cái)?shù)
if?(n?=?3)?{
return?n??1;
}
//從2循環(huán)到數(shù)字的開(kāi)平方,算法優(yōu)化
for(int?i=2;i=Math.sqrt(n);i++){
if(n%i?==?0)
return?false;
}
return?true;
}
}
原理很簡(jiǎn)單,因?yàn)樵趈ava中,int是占4個(gè)字節(jié)大小,double占8個(gè)字節(jié)的大小,當(dāng)你把某變量乘以2的時(shí)候,在計(jì)算機(jī)里面的處理方式是左移一位。當(dāng)使用浮點(diǎn)數(shù)進(jìn)行乘法運(yùn)算時(shí),若結(jié)果很大,會(huì)以科學(xué)計(jì)數(shù)法表示。
下面具體分析:
1、表達(dá)式0x7FFFFFFF == (int)(0x7FFFFFFF * 2.0)
0x7FFFFFFF 已經(jīng)占了4個(gè)字節(jié),也就是int型的最大范圍,以二進(jìn)制表示出來(lái)為01111111 11111111 11111111 11111111
0X7FFFFFFF*2.0 計(jì)算出來(lái)的結(jié)果為double型,那么結(jié)果將會(huì)以科學(xué)計(jì)數(shù)法來(lái)表示,也就是4.294967294E9, 以二進(jìn)制表示為0 11111111 11111111 11111111 11111110,以16進(jìn)制表示為0xFF FF FF FE,注意,這里的計(jì)算結(jié)果并沒(méi)有超出double的范圍8字節(jié)。
(int)(0x7FFFFFFF * 2.0) 在上面已經(jīng)看到0x7FFFFFFFF的二進(jìn)制表示為01111111 11111111 11111111 11111111乘以2就表示左移一位,結(jié)果為0 11111111 11111111 11111111 11111110 (注意,這個(gè)數(shù)并未超出8字節(jié)的范圍)然后再把結(jié)果強(qiáng)制轉(zhuǎn)換為int型,也就是從最高位開(kāi)始向下取4個(gè)字節(jié),因此最后一位的0被丟棄(取double的最大值,因此丟棄最低位),最后結(jié)果以二進(jìn)制表示為01111111 11111111 11111111 11111111,以16進(jìn)制表示為0x7F FF FF FF,可以看到與0x7FFFFFFFF的相同,因此第一個(gè)表達(dá)式0x7FFFFFFF == (int)(0x7FFFFFFF * 2.0)反回true。
2、表達(dá)式(int)(0x7FFFFFFF * 2.0) == (int)(0x7FFFFFFF * 2)
(int)(0x7FFFFFFF * 2.0)這部分的結(jié)果在上面介紹過(guò)了,這里就不用介紹了,結(jié)果還是為0x7F FF FF FF。
(int)(0x7FFFFFFF * 2) 其中0x7FFFFFFF*2表示把0x7FFFFFFF左移一位,其二進(jìn)制結(jié)果為0 11111111 11111111 11111111 11111110,因?yàn)樽詈鬄閕nt型,計(jì)算結(jié)果超出4個(gè)字節(jié),因此最高位的0被丟棄(int型的計(jì)算是拋棄最高位),結(jié)果為11111111 11111111 11111111 11111110,以16進(jìn)制表示為0xFF FF FF FE與0x7FFFFFFF不相同,因此結(jié)果為false。
要注意,在計(jì)算機(jī)中數(shù)值是以補(bǔ)碼的形式表示的(包括以上的計(jì)算結(jié)果全都是以補(bǔ)碼表示的),補(bǔ)碼知識(shí)不作介紹,這里只要知道,正數(shù)的被碼就為原來(lái)的正數(shù),而負(fù)數(shù)的補(bǔ)碼為符號(hào)位不變,其余各位按位取反再加1。因此0xFF FF FF FE除符號(hào)位不變(在java中int型最高位為符號(hào)位),其余各位取反再加1,結(jié)果為10000000 00000000 00000000 00000010最后結(jié)果為-2,以16進(jìn)制表示為0x80 00 00 02,因此使用print輸出該數(shù),則為-2,并不為0xFF FF FF FE的十進(jìn)制數(shù)值。
3、表達(dá)式0x7FFFFF * 2.0== (int)(0x7FFFFF * 2)
因?yàn)閮蓚€(gè)數(shù)字計(jì)算的結(jié)果都沒(méi)有出現(xiàn)超出int型的4個(gè)字節(jié)的情況,因此計(jì)算結(jié)果相同,這個(gè)就不介紹了,相信你應(yīng)該明白了。
好了,現(xiàn)在相信你應(yīng)該明白了
分享標(biāo)題:java回形數(shù)代碼,java回形數(shù)組
分享路徑:http://chinadenli.net/article31/dseedpd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、微信公眾號(hào)、全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站收錄、靜態(tài)網(wǎng)站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)