11155: 第七章:两重for循环《例题》

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:1 Solved:0

Description

题目要求:输入n
求s的值。
s=(1)+(1+2)+(1+2+3)……+(1+2+……+n)
课前学习:
【两重for循环】打印
1 * 1 , 1 * 2 , 1 * 3 , 1 * 4 , 1 * 5 , 1 * 6 , 1 * 7 , 1 * 8 , 1 * 9 , 
2 * 2 , 2 * 3 , 2 * 4 , 2 * 5 , 2 * 6 , 2 * 7 , 2 * 8 , 2 * 9 , 
3 * 3 , 3 * 4 , 3 * 5 , 3 * 6 , 3 * 7 , 3 * 8 , 3 * 9 , 
4 * 4 , 4 * 5 , 4 * 6 , 4 * 7 , 4 * 8 , 4 * 9 , 
5 * 5 , 5 * 6 , 5 * 7 , 5 * 8 , 5 * 9 , 
6 * 6 , 6 * 7 , 6 * 8 , 6 * 9 , 
7 * 7 , 7 * 8 , 7 * 9 , 
8 * 8 , 8 * 9 , 
9 * 9 , 
 
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
    int n,i,j;
    for(i=1;i<=9;i++) //i从1循环到9
    {
        for(j=i;j<=9;j++)//j从i循环到9,注意j是从i开始的
        {
            printf("%d * %d = %2d, ",i,j,i*j);
        }
        printf("\n");
    }
    return 0;
}
 
有没有发现两重for执行的规律?
 
 
试试这个:
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
    int n,i,j;
    for(i=1;i<=9;i++) //i从1循环到9
    {
        for(j=9;j>=i;j--)//j从9循环到i,注意j是每次减一个的
        {
            printf("%d * %d , ",i,j);
        }
        printf("\n");
    }
    return 0;
}
以上程序又发现什么?
 
 
再试试这个:
 
    for(i=9;i>=1;i--) //i从1循环到9
        for(j=9;j>=i;j--)//j从9循环到i,注意j是每次减一个的
以上程序又发现什么?

Sample Input Copy

2

Sample Output Copy

4