打印数字模式

时间:2017-03-01 15:40:37

标签: c++

我正在进行c ++作业,其中一个问题要求我在下面打印这种数字模式:

1
223
44365
8864910
44365
223
1
223
44365
8864910
44365
223
1

我可以看到第一列包含正方形(如果为2),我可以将其打印为:

#include <iostream>
#include <cmath>
using namespace std;

int main(){
  for (int i=0;i<=3;i++){
    cout<<pow(2,i)<<endl;
  }
  for (int i=2;i>=0;i--){
    cout<<pow(2,i)<<endl;
  }
  return 0;
}

它给了我输出:

1
2
4
8
4
2
1

但我没有看到其余数字对应的模式。有什么帮助吗?

2 个答案:

答案 0 :(得分:2)

See image for the logic of the pattern

这基本上就是这种模式背后的逻辑。一旦你做到这一点,你可以轻松地反转,然后使用嵌套循环打印两次。

答案 1 :(得分:0)

您需要嵌套循环。考虑一下公式来获取模式,并在嵌套循环中进行,比如

#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;

int main(){
int j, i, n=3;
for(j=0;j<=n;j++)
{ // YOU CAN ADD FORMULA
    for(i=1;i<=j;i++)
        {
            // YOU CAN ADD FORMULA
        }
        cout<<"\n";
}

for(j=0;j<=n;j++)
{ // YOU CAN ADD FORMULA

    for(i=0;i<=n-j;i++)
        {
           // YOU CAN ADD FORMULA
        }
        cout<<"\n";
}

getch();
return 0;
}

通过自我改善