查看: 1021|回复: 13
|
C++ 高手请帮忙一下。。。。
[复制链接]
|
|
Write a program to build the pyramid of numbers as shown below (Hint=
Use multiple loops)
1
222
33333
44444444
555555555
66666666666
7777777777777
888888888888888
可以教我如何solve这题吗?Especially 如何做 piramid form? |
|
|
|
|
|
|
|

楼主 |
发表于 5-9-2007 06:14 PM
|
显示全部楼层
请问这样做对吗??
#include <iostream.h>
#include <math.h>
int main()
{
int a=1;
cout<<" ";
for(int i=1;i<=1;i++) {
cout<<a;
}
cout<<endl;
cout<<" ";
int b=2;
for(i=1;i<=3;i++) {
cout<<b;
}
cout<<endl;
cout<<" ";
int c=3;
for(i=1;i<=5;i++) {
cout<<c;
}
cout<<endl;
cout<<" ";
int d=4;
for(i=1;i<=7;i++) {
cout<<d;
}
cout<<endl;
cout<<" ";
int e=5;
for(i=1;i<=9;i++) {
cout<<e;
}
cout<<endl;
cout<<" ";
int f=6;
for(i=1;i<=11;i++) {
cout<<f;
}
cout<<endl;
cout<<" ";
int g=7;
for(i=1;i<=13;i++) {
cout<<g;
}
cout<<endl;
cout<<" ";
int h=8;
for(i=1;i<=15;i++) {
cout<<h;
}
cout<<endl;
return 0;
} |
|
|
|
|
|
|
|
发表于 5-9-2007 06:18 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 5-9-2007 06:45 PM
|
显示全部楼层
有那么复杂吗??
其实3个loop就好了.
一个control row,一个control spacing,一个出号码就可以了.
你试试做
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1 |
|
|
|
|
|
|
|

楼主 |
发表于 5-9-2007 07:46 PM
|
显示全部楼层
回复 #3 康...开心 的帖子
感觉怪怪的。因为用了很“牵强”的方法将 piramid form present 出来。。。还有似乎用了很多loop 来 output 一样很简单的东西。。。总觉得有些问题。。。 |
|
|
|
|
|
|
|

楼主 |
发表于 5-9-2007 07:49 PM
|
显示全部楼层
回复 #5 Candaliss 的帖子
get your point。可是我只是一个初学者。。。不知道要如何写 source code。。。 |
|
|
|
|
|
|
|

楼主 |
发表于 5-9-2007 07:55 PM
|
显示全部楼层
回复 #4 SotongJiang 的帖子
我没学java。。。我才开始学 c++ programming 罢了。。。完全不懂 java 的 code。可以 transfer 去 c++ 吗?感激不尽。。。 |
|
|
|
|
|
|
|
发表于 5-9-2007 08:28 PM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 5-9-2007 08:34 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 5-9-2007 08:36 PM
|
显示全部楼层
msn messenger ,不是email  |
|
|
|
|
|
|
|

楼主 |
发表于 5-9-2007 08:43 PM
|
显示全部楼层
回复 #11 Candaliss 的帖子
没错,这是我的 msn messenger 。。。 |
|
|
|
|
|
|
|
发表于 6-9-2007 10:41 AM
|
显示全部楼层
其实不用想那么复杂。一个loop就够了
#include <stdio.h>
#include <string.h>
void pyramid(int r)
{
int c=(r<<1)+2,ts=c*r,i,k,l;
char a[ts];
for (i=0;i<r;k=c/2-i-1,l=i*c,
memset(a+k+l,i+49,(i<<1)+1),
memset(a+l, 1<<5,k),
memset(a+l+r+1+i,1<<5,k),
a[l+c-1]=10 ,i++);
a[ts-1]=0;
printf("%s",a);
}
void main()
{
pyramid(8);
} |
|
|
|
|
|
|
|
发表于 6-9-2007 11:01 AM
|
显示全部楼层
#include <iostream>
using namespace std;
int main()
{
for(int x=1; x<=8; x++) //number of rows
{
for(int spacing=1; spacing<=8-x; spacing++) //print spaces
{
cout << " ";
}
for(int y=1; y<=x*2-1; y++) //to print the pattern 1,3,5,7,9...
{
cout << x ;
}
cout << endl;
}
return 0;
} |
|
|
|
|
|
|
|

楼主 |
发表于 7-9-2007 12:36 PM
|
显示全部楼层
谢谢大家的答复。ty very much... |
|
|
|
|
|
|
| |
本周最热论坛帖子
|