求助,wa#3不知道是什么问题
查看原帖
求助,wa#3不知道是什么问题
355377
xiaozhuo楼主2023/8/13 20:17
#include<bits/stdc++.h>
using namespace std;
char s[10];
int a[1010], b[1010], c[1010], n, w;
void zhuan(int x[])
{
	int ls = strlen(s), p, j = 0;
	for(p = 0;p < ls;p ++) if(s[p] == '.') break;
	for(int i = ls - 1;i >= 0;i --)
	{
		if(s[i] == '.') continue;
		x[++j] = s[i] - '0';
	}
	x[0] = j;
	w = (ls - p - 1) * n;
}
int main()
{
	while(cin >> s >> n)
	{
		memset(a, 0, sizeof(a));
		memset(b, 0, sizeof(b));
		zhuan(a);
//		for(int i = a[0];i >= 1;i --) cout << a[i]; 
//		cout << endl;
		memcpy(b, a, sizeof(b));
		for(int i = 1;i < n;i ++)
		{
			memset(c, 0, sizeof(c));
			c[0] = a[0] + b[0];
			for(int j = 1;j <= a[0];j ++)
				for(int k = 1;k <= b[0];k ++)
				{
					c[j + k - 1] += a[j] * b[k];
					c[j + k] += c[j + k - 1] / 10;
					c[j + k - 1] %= 10;
				}
			while(c[c[0]] == 0 && c[0] > 1) c[0] --;
			memset(a, 0, sizeof(a));
			memcpy(a, c, sizeof(a));
		}
		int l = 1;
		while(a[l] == 0 && l <= w) l ++;
		for(int i = a[0];i > w;i --) cout << a[i];
		if(l <= w) cout << ".";
		for(int i = w;i >= l;i --) cout << a[i];
		cout << endl;
	}
	return 0;
}
2023/8/13 20:17
加载中...