本文主要是介绍HDOJ_1.3.5_百步穿杨,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
C++代码:
#include<iostream>
#include<string>
using namespace std;
int main(){//t组数据,每组一个N代表有N种弓箭,箭身长度为ai的有bi支,i,j为循环变量int t,N,ai,bi,i,j;cin>>t;while(t--){//存储要打印的箭(小于50种弓箭,每种弓箭小于10支)string arrow[500];cin>>N;//记录数组下标int m=0;string temp;//遍历每种弓箭while(N--){cin>>ai;cin>>bi;//输出bi次for(i=0;i<bi;i++){temp="";temp+=">+";for(j=0;j<ai-2;j++){temp+="-";}temp+="+>";arrow[m]=temp;m++;}}//冒泡排序for(i=0;i<m-1;i++){for(j=0;j<m-i-1;j++){if(arrow[j]>arrow[j+1]){temp=arrow[j];arrow[j]=arrow[j+1];arrow[j+1]=temp;}}}//按照箭身(ai)的长度从小到大的顺序依次输出所有需要的弓箭for(i=0;i<m;i++){cout<<arrow[i]<<endl;//输出空行if(i!=m-1&&arrow[i]!=arrow[i+1] || i==m-1){cout<<endl;}}}return 0;
}
运行结果:
这篇关于HDOJ_1.3.5_百步穿杨的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!