5-38 数列求和-加强版 (20分)

给定某数字A(1A9)以及非负整数N(0N100000),求数列之和S=A+AA+AAA++AAA(N个A)。例如A=1, N=3时,S=1+11+111=123。

输入格式:

输入数字A与非负整数N。

输出格式:

输出其N项数列之和S的值。

输入样例:

1 3

输出样例:

123

#include<iostream>

using namespace std;

int main(void)
{ 
	int A, N,flag,temp;
	long j=0;
	int *num;
	cin >> A >> N;
	if (N == 0)
	{
		cout << N;
	}
	else
	{
		num = new int[N];
		flag = 0;
		for (int i = N; i >= 1; i--)
		{
			temp = A*i + flag;
			flag = temp / 10;
			num[j] = temp % 10;
			j++;
		}
		if (flag > 0)
		{
			num[j] = flag;
		}
		else
		{
			j--;
		}
		for (int i = j; i >= 0; i--)
		{
			cout << num[i];
		}
		delete[] num;
	}
	
	return 0; 
}

  

posted @ 2015-10-22 12:59  hhboboy  阅读(1429)  评论(0编辑  收藏  举报