新聞中心
用java代碼求1000之內(nèi)的所有完全數(shù)
import java.util.ArrayList;
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、獻(xiàn)縣網(wǎng)絡(luò)推廣、小程序開發(fā)、獻(xiàn)縣網(wǎng)絡(luò)營(yíng)銷、獻(xiàn)縣企業(yè)策劃、獻(xiàn)縣品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供獻(xiàn)縣建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
public class Testa {
public static void main( String[] args ) {
ArrayListInteger arrayList = new ArrayListInteger();
for ( int i = 1; i = 1000; i++ ) {
int k=0;
for(int j=1;ji;j++){
if(i%j==0){
k+=j;
}
}
if(k==i){
arrayList.add( i );
}
}
System.out.println(arrayList);
}
}
用java編寫一個(gè)程序:輸出1-1000;輸出格式為0001,0002.....1000
代碼如下:
public static void main(String[] args)
{
String str = "";
for(int i = 1;i 10000;i++)
{
str = String.format("%04d", i);
System.out.println(str);
}
}
Java是一門面向?qū)ο缶幊陶Z(yǔ)言,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語(yǔ)言具有功能強(qiáng)大和簡(jiǎn)單易用兩個(gè)特征。
Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程 。
用java代碼將1到1000的奇數(shù)打出來
這是一個(gè)java基礎(chǔ)題
雖然基礎(chǔ),但是我們練習(xí)的時(shí)候,可以加以拓展和優(yōu)化,熟悉for循環(huán) while循環(huán), 了解運(yùn)算符優(yōu)先級(jí), ? 加強(qiáng)對(duì)業(yè)務(wù)邏輯的分析處理,強(qiáng)化寫代碼的能力。
首先代碼的寫法是多樣的
1.根據(jù)奇數(shù)定義 : ? 不能被2所整除的數(shù)是奇數(shù)
根據(jù)這個(gè)定義,我們可以寫一個(gè)最基礎(chǔ)的版本
public?class?Odd1?{
public?static?void?main(String[]?args)?{
for?(int?i?=?1;?i??1000;?i++)?{//1~1000之間?循環(huán)1000次
if(i%2!=0){??//不能被2整除的
System.out.println(i);//就是奇數(shù),打印出來
}
}
}
}
分析下,這個(gè)版本,我們發(fā)現(xiàn)這個(gè)版本性能可能比較低
因?yàn)橐h(huán)1000次,并且每次還要進(jìn)行一次求余運(yùn)算。所以性能低。
有沒有改進(jìn)的空間?
2. ? 我們繼續(xù)對(duì)奇數(shù)進(jìn)行了解(對(duì)業(yè)務(wù)進(jìn)行熟悉)。還有改進(jìn)的空間
然后發(fā)現(xiàn):?偶數(shù)可用2k表示,奇數(shù)可用2k+1表示,這里k是整數(shù)。
代碼修改如下
public?class?Odd2?{
public?static?void?main(String[]?args)?{
for?(int?k?=?0;?k??500;?k++)?{//循環(huán)減少為500次
System.out.println(k*2+1);//按照奇數(shù)公式進(jìn)行輸出
}
}
}
3. ?繼續(xù)優(yōu)化. ? java中乘法是性能消耗比較大的運(yùn)算, ?如果可以使用移位操作 , ?那么使用移位操作代替乘法
因?yàn)槭褂靡莆坏牟僮鲗?huì)更快和更有效
public?class?Odd3?{
public?static?void?main(String[]?args)?{
for?(int?k?=?0;?k??500;?k++)?{
System.out.println((k1)+1);//移位操的優(yōu)先級(jí)低于四則運(yùn)算,?所以用括號(hào)括起來優(yōu)先計(jì)算?,?左移1位.相當(dāng)于*2
}
}
}
4. ?查看奇數(shù)的特性 ?, 來探索其他寫法
奇數(shù)1、3、5、7、9、11、13、15、17、19、21、23、25、27、29、31、33.........
每個(gè)奇數(shù)的間隔是2, 第一個(gè)奇數(shù)是1
代碼如下
public?class?Odd4?{
public?static?void?main(String[]?args)?{
for?(int?i?=?1;?i??1000;?i+=2)?{//從1開始,每次自加2
System.out.println(i);
}
}
}
5. 除開for循環(huán), ?while循環(huán)也可以寫.
public?class?Odd5?{
public?static?void?main(String[]?args)?{
int?i?=?1;
while?(true)?{
if?(i?=?1000)?{
break;//跳出循環(huán)
}
System.out.println(i);
i?=?i?+?2;
}
}
}
6 ?再次修改,如果業(yè)務(wù)邏輯 從1~1000修改成其他數(shù)字了, 那么在循環(huán)體中修改不是特別合適
所以需要定義成2個(gè)變量. 來記錄開始的數(shù)字和結(jié)束的數(shù)字. ?并且如果輸出太多的數(shù)字, 不方便查看, ?那么需要美化下輸出的格式
public?class?Odd6?{
public?static?void?main(String[]?args)?{
int?start?=?1;?//開始的數(shù)
int?end?=?1000;?//結(jié)束的數(shù)
int?index?=0;//用于換行處理的計(jì)算
for?(int?n?=?start;?n??end;?n?+=?2)?{
index++;
System.out.print(n+"\t");//??\t表示制表符??,這樣數(shù)字看起來排列比較整齊
if(index%10==0){//每10個(gè)數(shù)字,換一行
System.out.println();
}
}
}
}
網(wǎng)站名稱:java代碼1000的簡(jiǎn)單介紹
文章位置:http://www.dlmjj.cn/article/docsejo.html