我正在进行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
但我没有看到其余数字对应的模式。有什么帮助吗?
答案 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;
}
通过自我改善