Parkside's Triangle poj3173

   代码写的很乱。

   题意输入直角三角形直角边的长度和开始的数字。例如,5 3

   3 4 6 9 4

     5 7 1 5

        8 2 6

           3 7

             8

   思路:在每一中2个数之间的差为1,2,3,...

           每一列的第一个数也是这个规律2,3,4,...

#include<iostream>
using namespace std;

int main()
{
     int n,s;
     cin>>n>>s;
     int s1=s;
     int s2=s;
     int n1=n;//控制每行输出个数,(直接用i就可以了,整个程序都很麻烦。。。)
     for(int i=1;i<=n;i++)
     {
         for(int j=0;j<n1;j++)//把每一行的数处理出来,输出
         {
             cout<<s1<<" ";
             s1=s1+j+i;//前一个数加列数和
             if(s1>9)s1=s1%9;
             if(s1==0)s1=9;
         }
         n1--;
         cout<<endl;
         for(int k=0;k<i;k++){cout<<" "<<" ";}//输出每行前的空格
         s2=s2+i+1;//处理出每一行的第一个数
         if(s2>9)s2=s2%9;
         if(s2==0)s2=9;
         s1=s2;//处理出后赋值
     }
}

 

posted @ 2015-12-07 14:44  哲贤  阅读(179)  评论(0编辑  收藏  举报