第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

C# 寫一個(gè)程序打印 1 到 100 這些數(shù)字。目前我寫了一個(gè)能實(shí)現(xiàn)功能的方法,但是我懷疑效率不怎么高。

C# 寫一個(gè)程序打印 1 到 100 這些數(shù)字。目前我寫了一個(gè)能實(shí)現(xiàn)功能的方法,但是我懷疑效率不怎么高。

12345678_0001 2018-12-06 17:14:21
今在網(wǎng)上看到一個(gè)問(wèn)題,自己試著做了一下。試題題目如下: 寫一個(gè)程序打印 1 到 100 這些數(shù)字。但是遇到數(shù)字為 3 的倍數(shù)的時(shí)候,打印“Fizz”替代數(shù)字,5的倍數(shù)用“Buzz”代替,既是 3 的倍數(shù)又是 5 的倍數(shù)打印“FizzBuzz”。 ? 下面是我實(shí)現(xiàn)的方法。請(qǐng)問(wèn)能否有更簡(jiǎn)潔的、效率更高的方法沒(méi)? public void DoPrintDemo() {? ? ?string msg = "";? ? ?for (int i = 1; i <= 100; i++)? ? ? ?{? ? ? ? ? ? if (i % 3 == 0 && i % 5 == 0)? ? ? ? ? ? ? {? ? ? ? ? ? ? ? ? ? msg += "FizzBuzz\n";? ? ? ? ? ? ? }? ? ? ? ? ? else if (i % 5 == 0)? ? ? ? ? ? ?{? ? ? ? ? ? ? ? ? ?msg += "Buzz\n";? ? ? ? ? ? ?}? ? ? ? ? ? else if (i % 3 == 0 )? ? ? ? ? ? ?{? ? ? ? ? ? ? ? ? ?msg += "Fizz\n";? ? ? ? ? ? ?}? ? ? ? ? ? else? ? ? ? ? ? ?{? ? ? ? ? ? ? ? ? ?msg += i + "\n";? ? ? ? ? ? ?}? ? ? ?}? ? ? this.divTest.InnerHtml = msg; } 謝謝回答! ?
查看完整描述

8 回答

?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

三的倍數(shù)和五的倍數(shù)實(shí)際上就是15的整數(shù)倍。

代碼就可以簡(jiǎn)化成

View Code
var j = (i % 15) == 0 ? "FizzBuzz\n" : (i % 3) == 0 ? "Fizz\n" : (i % 5) == 0 ? "Buzz\n" : i.ToString();


stringbulider 這個(gè)想用就用,不想用算了。

三目運(yùn)算系統(tǒng)會(huì)進(jìn)行優(yōu)化。

這樣的代碼運(yùn)行怎么 都會(huì)很快。

要知道,執(zhí)行慢不會(huì)因?yàn)閱我环椒ɑ蛘哒Z(yǔ)句執(zhí)行的慢。而是因?yàn)檎w的結(jié)構(gòu)設(shè)計(jì)的不好。

就算是你用10000次反射在這里,速度都還是很快的。

別太糾結(jié)到一個(gè)個(gè)方法這樣的優(yōu)化。

查看完整回答
反對(duì) 回復(fù) 2019-01-21
?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

簡(jiǎn)潔的寫法倒是有,更高效的估計(jì)不多,你這種寫法已經(jīng)挺高效了,另外把string換為stringbuilder貌似會(huì)更好點(diǎn)

查看完整回答
反對(duì) 回復(fù) 2019-01-21
?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

謝謝朋友的熱情回答!

查看完整回答
反對(duì) 回復(fù) 2019-01-21
?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊

使用stringbuilder,

?msg += i + "\n";寫成 ?msg += i。tostring() + "\n";

查看完整回答
反對(duì) 回復(fù) 2019-01-21
?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

謝謝朋友的熱情回答!

查看完整回答
反對(duì) 回復(fù) 2019-01-21
?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊

public void DoPrintDemo()
 {
     string msg = "";
     for (int i = 1; i <= 100; i++)
       {
            bool normal = true;
            if (i % 3 == 0)
              {
                    normal = false;
                    msg += "Fizz";
              }
            if (i % 5 == 0)
             {
                   normal = false;
                   msg += "Buzz";
             }
            if(normal)
             {
                   msg += i.ToString();
             }
            msg += "\n";
}
this.divTest.InnerHtml = msg; }

沒(méi)有絕對(duì)的優(yōu)化方案,你這個(gè)代碼看起來(lái)似乎很啰嗦,其實(shí)在計(jì)算機(jī)里的運(yùn)行性能已經(jīng)很好了。我給出的代碼相對(duì)你的代碼不一定比你的代碼好,只是作為引玉之磚,希望能對(duì)你有所幫助。

此外,如果你一定想更進(jìn)一步的優(yōu)化,那么使用二進(jìn)制進(jìn)行比較判斷也是一個(gè)方案,只是,3或5的倍數(shù)在二進(jìn)制里并不具備優(yōu)勢(shì),這樣或許適得其反。

另外,artwl已經(jīng)說(shuō)了,把String使用StringBuilder替代,性能會(huì)高很多,但這個(gè)跟算法已經(jīng)沒(méi)關(guān)系了,只是你對(duì)String和StringBuilder兩個(gè)類型的掌握問(wèn)題。

查看完整回答
反對(duì) 回復(fù) 2019-01-21
?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊

謝謝朋友的熱情回答!不過(guò),朋友你寫的這個(gè)方法貌似沒(méi)有實(shí)現(xiàn)這個(gè)“既是 3 的倍數(shù)又是 5 的倍數(shù)打印‘FizzBuzz’”功能的判斷呢。

查看完整回答
反對(duì) 回復(fù) 2019-01-21
?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊

@Technology:?那是你沒(méi)看懂??炊司筒粫?huì)這樣說(shuō)了。你可以試運(yùn)行看看是否有。

查看完整回答
反對(duì) 回復(fù) 2019-01-21
  • 8 回答
  • 0 關(guān)注
  • 590 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)