题目:求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个非负整数且小于10。
解题思路:使用累乘法,把这次运算的结果传递作为下次运算的基础。
< code >
int Sum(int number)
{
if ((number<0) || (number>9))
return -1;
int i = 0;
int sum = 0;
int result = 0;
for (i = 0; i < 5; i++)
{
sum = number + sum * 10;
result += sum;;
}
return result;
}
测试代码:
Test(char* testName, int number, int expection)
{
if (testName != NULL)
{
int result = Sum(number);
if (expection == result)
printf("%s: passed\n", testName);
else
printf("%s: FAILED\n", testName);
}
}
int main()
{
Test("test1", -1, -1);
Test("test2", 0, 0);
Test("test3", 1, 12345);
Test("test4", 2, 24690);
Test("test5", 9, 111105);
Test("test6", 10, -1);
system("pause");
return 0;
}
运行结果: