vb 在picture打印数字三角形,1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49

 我来答
百度网友95bd0d6
2013-05-20
知道答主
回答量:24
采纳率:0%
帮助的人:9.6万
展开全部
如果是在特定picture,神马自己的jpg,bmp上作图,那就不要看下去了昌瞎。
假如思路要这样的话:49/2 取整加1(也可以直接数出来25个数字);一般的,我们把三角形正放,可知有以下几点常识:
1,最上一个角必然是一个数字;
2,每行数蔽悔字逐渐增多,最后一行刚好分配完;
3,打印的每一行平行,成三角的话(只有两行不在此列)每行上的数字个数为等差数列,设方差为a,则每行数字的个数如下:
1
1 + a
1 + 2a
......
1 + na
其中总数为25;公式为 n +1+ a*n*(n+1)/2 = 25。

显然如果只有一行是不能称之为三角形的n>1。可得a<7;即a可为1,2,3,4,5,6;逐个试之,仅a为2可得n为整数5。

结果为:

count
1 line1 1
3 5 7 line2 3
9 11 13 15 17 line3 5
19 21 23 25 27 29 31 line4 7
33 35 37 39 41 43 45 47 49 line5 9
sum 25

其中三角行可调整为等腰三角形。

代码如下:

int line = 1;
for( int i = 0; i <25; i++ )
{
fprintf( stdout, 'i*2 + 1 ' );

if( 1+2*(line-1) == (i+1)/2 )
{
fprintf(stdout, '\n');
line++;
}
}

说真的,以题目这么宽松,两行也要算的。

count
1 line1 1个数字
3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 line2 24 个数字

如果1下面必须有数字,(打印格式一般是这样的),则凑不成等腰三角形了。

代码如下:
fprintf( stdout, '1\n ' );
for( int i = 0; i <宏迅正25; i++ )
{
fprintf( stdout, 'i*2 + 1 ' );
}
fprintf(stdout, '\n');
tonkeys
2013-05-13 · TA获得超过1513个赞
知道大有可为答主
回答量:2087
采纳率:33%
帮助的人:2433万
展开全部
啥 样子的,没看出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式