九度OJ 1051:数字阶梯求和 (大数运算)
2015-10-21 20:17
239 查看
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:6718
解决:2280
题目描述:
给定a和n,计算a+aa+aaa+a...a(n个a)的和。
输入:
测试数据有多组,输入a,n(1<=a<=9,1<=n<=100)。
输出:
对于每组输入,请输出结果。
样例输入:
样例输出:
来源:2010年哈尔滨工业大学计算机研究生机试真题
思路:
会超出long long的表示范围,典型的大数运算,注意循环的方式,第n位的数要加n-i次。
sum[i] += a*(n-i);
代码:
内存限制:32 兆
特殊判题:否
提交:6718
解决:2280
题目描述:
给定a和n,计算a+aa+aaa+a...a(n个a)的和。
输入:
测试数据有多组,输入a,n(1<=a<=9,1<=n<=100)。
输出:
对于每组输入,请输出结果。
样例输入:
1 10
样例输出:
1234567900
来源:2010年哈尔滨工业大学计算机研究生机试真题
思路:
会超出long long的表示范围,典型的大数运算,注意循环的方式,第n位的数要加n-i次。
sum[i] += a*(n-i);
代码:
#include <stdio.h> int main(void) { int n, a, i; unsigned int sum[100]; int flag; while (scanf("%d%d",&a, &n) != EOF) { for (i=0; i<100; i++) sum[i] = 0; i = 0; do { sum[i] += a*(n-i); if (sum[i] >= 10) { sum[i+1] += sum[i]/10; sum[i] %= 10; } i++; } while(i<n); flag = 1; for (i=99; i>=0; i--) { if (flag) { if (sum[i] == 0) continue; flag = 0; } printf("%d", sum[i]); } printf("\n"); } return 0; } /************************************************************** Problem: 1051 User: liangrx06 Language: C Result: Accepted Time:0 ms Memory:912 kb ****************************************************************/
相关文章推荐
- linux字体设置
- [BZOJ2072][POI2004] MOS过桥
- 九度OJ 1051:数字阶梯求和 (大数运算)
- UICollectionViewController 用来创建流水布局 和 常见九宫格布局
- 【性能跟踪】btrace学习一--安装btrace
- C++ learning notes - Function
- mysql之TIMESTAMP(时间戳)用法详解
- 【leetcode】150. Evaluate Reverse Polish Notation
- java万年历
- c++指针再学习
- MiniUI动态添加table表格
- Summer Holiday(强联通入度最小点)
- Hibernate 对象的三种状态
- c++类的继承
- 交换两数的多种解法(c语言)
- 第六周项目5 数制转换
- 15年亚洲区长春站赛后总结
- 实现uboot到内核logo的持续显示
- HM在帧内预测中如何指定一幅图像作为一个slice,一个CU作为一个PU的
- AC多模式匹配算法