http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=429
题目大意:
给你振幅A和频率F,让你画出波形。
如:
3
2
波形为:
1
22
333
22
1
1
22
333
22
1
思路:
水。。。直接输出即可。。。。。
要注意的是每两个波形之间有空行。。最后一个没有。
有人问我怎么时间快一点。。。我一开始300+MS,输出字符后就70MS左右的样子。还有一个代码多次提交OJ上显示运行时间会不同。
至于人家怎么0MS过的。我就不知道了。
其实没必要太纠结时间。
#include<cstdio> const char temp[]={'0','1','2','3','4','5','6','7','8','9'}; void print(int a) { for(int i=1;i<=a;i++) { for(int j=1;j<=i;j++) printf("%c",temp[i]); printf("\n"); } for(int i=a-1;i>=1;i--) { for(int j=1;j<=i;j++) printf("%c",temp[i]); printf("\n"); } } int main() { int T; scanf("%d",&T); while(T--) { int a,f; scanf("%d%d",&a,&f); for(int i=0;i<f;i++) { print(a); if(i!=f-1) printf("\n"); } if(T) printf("\n"); } return 0; }