您的位置:首页 > 其它

JiuDuOj——1051

2015-11-30 13:57 399 查看
#include <iostream>
#include <math.h>
#include <algorithm>
#include <string.h>

using namespace std;

int main()
{
int a,n,tmp,k,ans[101];
while (cin>>a>>n)
{
if (a == 0)
{
cout<<0;
}
else
{
memset(ans, 0, sizeof(ans));
k = 0;
for (int i = 0; i != n; ++ i)
{
tmp = (n - i) * a;
ans[i] += tmp;
ans[i + 1] += ans[i] / 10;
ans[i] = ans[i] % 10;
}
for (int i = 0; i != 101; ++ i)
{
if (ans[i] != 0)
{
k = i;
}
}
for (int i = k; i != -1; -- i)
{
cout<<ans[i];
}
}
cout<<endl;
}
}


这题...有点卡壳了,特殊情况必须要考虑清楚,还有就是计算的方法需要改进的地方要改进。这题的思路其实,要在草稿纸上把加法竖式列出来就发现,高位其实是n个a相加,往下走最后变成1个a,这样的话就可以归纳成大数加法了。Great
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: