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;//处理出后赋值 } }