首页 > ACM题库 > 九度OJ > 九度-1051-数字阶梯求和[解题代码]
2013
12-12

九度-1051-数字阶梯求和[解题代码]

题目来源:2010年哈尔滨工业大学计算机研究生机试真题

题目描述:

给定a和n,计算a+aa+aaa+a…a(n个a)的和。

输入:

测试数据有多组,输入a,n(1<=a<=9,1<=n<=100)。

输出:

对于每组输入,请输出结果。

样例输入:
1 10
样例输出:
1234567900

cpp 代码如下:
#include <stdio.h>
int a,n;
char ans[110];
int main() {
	ans[109] = 0;
	while(scanf("%d %d", &a, &n) != EOF){
		int last = 108,jin = 0,tmp;
		while(n){
			tmp = a*n + jin;
			ans[last] = tmp % 10 + '0';
			jin = tmp /10;
			last--;n--;}
		if(jin > 0) ans[last--] = jin + '0';
		printf("%s\n", ans+last+1);
	}
	return 0;
}
/**************************************************************
	Problem: 1051
	User: coder
	Language: C
	Result: Accepted
	Time:0 ms
	Memory:912 kb
****************************************************************/


  1. 第2题,TCP不支持多播,多播和广播仅应用于UDP。所以B选项是不对的。第2题,TCP不支持多播,多播和广播仅应用于UDP。所以B选项是不对的。

  2. 嗯 分析得很到位,确实用模板编程能让面试官对你的印象更好。在设置辅助栈的时候可以这样:push时,比较要push的elem和辅助栈的栈顶,elem<=min.top(),则min.push(elem).否则只要push(elem)就好。在pop的时候,比较stack.top()与min.top(),if(stack.top()<=min.top()),则{stack.pop();min.pop();},否则{stack.pop();}.