網(wǎng)站怎樣做百度推廣網(wǎng)站建設(shè)是什么工作
題目:
題目乍一看非常的簡單,屬于初學(xué)者都會(huì)的問題——————————但是實(shí)際上呢,有一些小小的坑在里面。
就是三角形的打印。
平常我們在寫代碼的時(shí)候,遇到打印三角形的題,一般簡簡單單兩個(gè)for循環(huán)搞定
#include<iostream>
using namespace std;
int main()
{int n;cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){cout<<j;}cout<<endl;}return 0;
}
輸出來的三角形是這樣的
而題目要求的則是考右邊的三角形。
一開始想到了printf來對其.....可是試了很多遍三角形都無法靠左邊。
在一籌莫展之際突然靈光一閃——————可以在第二輪for循環(huán)之前再加上一個(gè)for循環(huán)來控制空格的輸出。
將空格稍微補(bǔ)齊我們可以發(fā)現(xiàn),第一行缺了6個(gè),第二行缺了4個(gè),第三行缺了2個(gè),第四行缺了0個(gè)。
本來應(yīng)該是第一行缺n-1個(gè),導(dǎo)致這種情況的原因是三角形出現(xiàn)了補(bǔ)0。所以導(dǎo)致每一行長度都變成了原來的2倍。所以將循環(huán)開始的條件改成2(n-1)問題就解決了。
最后上代碼:
#include<iostream>
#include<algorithm>
using namespace std;int n;int main()
{cin>>n;int a=1;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(a<10){cout<<"0"<<a;}else if(a>=10){cout<<a;}a++;}cout<<endl;}cout<<endl;int b=1;for(int i=1;i<=n;i++){for(int z = 2*n-2*i; z >=1; z--){cout<<" ";}for(int j=1;j<=i;j++){if(b<10){cout<<"0"<<b;}else if(b>=10){cout<<b;}b++;}cout<<endl;}return 0;
}