本帖最后由 donkey2 于 2014-11-15 10:05 编辑
/* 求S(n) = a+aa+aaa+aaaa+...+aa..a之值,其中a是一个数字,n表示a的位数例如:2+22+222+2222+22222(此时n=5),n和a都从键盘输入。 */
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... // NSLog(@"Hello, World!");
int a; long int result;
int n; NSLog(@"请输入一个数字a和它的位数n"); scanf("%i %i",&a,&n); for (;n>0 ; n--) {
for (int i=0 ; n-1-i >= 0; i++) { result += a * pow(10, n-1-i); } } NSLog(@"计算结果为:%li",result); } return 0; }
遇到的问题:
1. 开始没想到循环嵌套,直接result += a * pow(10, n-1),
这样的话,如果输入2 5,得到result = 22222,这是最大的数,显然不是和值。
于是想到用循环嵌套,得到2222,222,22,2,然后加和,得到最终结果。
2. 注意防止result溢出,可以设成长整型。
|