downvoteの前に、自分のコードを見てください。私はあなたがこれが数学のオタクにとって正当な質問であることを願っています。ピラミッドナンセンス:if条件文ではなく、代数的にi = 0をどのように除外できますか?
私はこの生産:
---------------------
*-------------------*
**-----------------**
***---------------***
****-------------****
*****-----------*****
******---------******
*******-------*******
********-----********
*********---*********
**********-**********
*********---*********
********-----********
*******-------*******
******---------******
*****-----------*****
****-------------****
***---------------***
**-----------------**
*-------------------*
をしかし、私は最初の行に満足していませんでした。私はそれを除外したいので、for-loopの周りにif-conditionalラッパーを付けてi = 0を除外した新しいものを作った。誰かがよりクリーンなソリューションを知っているのだろうかと思っていました。 (FYI、これはテストの質問だった、と私の解決策は、非常にずさんだった。私は、このためのクリーナー方法(愚かなピラミッドプログラミング)を練習しています。
コード
コメント// I want to exclude i=0 by using algebra in the for loop
を見てください。アイデアと誰?
#include <stdio.h>
#include <stdlib.h>
int main(void) {
/* Pyramid Size */
int n = 10;
/* Take care of the top */
for (int i=0;i<n;i++) {
for (int j=0;j<i;j++)
printf("*");
if (i != 0) { // I want to exclude i=0 by using algebra in the for loop
for (int j=0;j<=n*2-i*2;j++) {
printf("-");
}
}
for (int j=0;j<i;j++)
printf("*");
printf("\n");
}
/* Take care of the bottom */
for (int i=n;i>0;i--) {
for (int j=0;j<i;j++)
printf("*");
for (int j=0;j<=n*2-i*2;j++) {
printf("-");
}
for (int j=0;j<i;j++)
printf("*");
printf("\n");
}
}
「代数を使用する」とはどういう意味ですか? *条件* 'i!= 0'に代数はありませんか? –
@Someprogrammerdude私はあなたが上記の式に 'j <= n * 2-i * 2'という意味を持つようにして、条件付きifを完全に取り除くことができます。言い換えれば、どのようにして 'i!= 0'を代数的に表現できますか? –
https://codereview.stackexchange.com/a/149694をご覧ください。 –