這個也行 K=2*i -1 你們是怎么看出來的??? 你們不說 我是看不出來這個公式的 K= i + i 運(yùn)行會不會快一點(diǎn)
#include <stdio.h>
int main()
{
? ? int i, j, k;
? ? for(i=1; i<5; i++)
? ? {
? ? ? ? /* 觀察每行的空格數(shù)量,補(bǔ)全循環(huán)條件 */
? ? ? ? for( j=i ; j<5 ; j++? )??
? ? ? ? {
? ? ? ? ? ? printf(" ");? ? //輸出空格
? ? ? ? }
? ? ? ? /* 觀察每行*號的數(shù)量,補(bǔ)全循環(huán)條件 */
? ? ? ? for( k=1 ; k<i + i ;? k++)?
? ? ? ? {
? ? ? ? ? ? printf("*");? ?//每行輸出的*號
? ? ? ? }
? ? ? ? printf("\n");? ? ?//每次循環(huán)換行
? ? }
? ? return 0;
}
2021-12-23
首先,空格和星號是等差數(shù)列,反映了數(shù)學(xué)中的規(guī)律。而觀察需要使用歸納、演繹等方式,注重?cái)?shù)學(xué)部分,比如 “逐行數(shù)行號1,2,3,4”、“數(shù)空格數(shù)量 3,2,1,0”、“數(shù)星號數(shù)量:1,3,5,7”,然后得到的每一組序列內(nèi)部兩個數(shù)字之間相減、相除,然后歸納出是不是常見的等差、等比數(shù)列。接著,程序部分,找到與行號i的關(guān)系。這樣就可以使用for循環(huán)表示了;至于內(nèi)部循環(huán)j和k完全可以用i和常量表示出來,引入j,k只是為了邏輯更清晰。
其次,速度問題,算式運(yùn)算表達(dá)式會被編譯器優(yōu)化,一般來說乘法是比加法慢。