这题有什么要注意的吗?为啥我样例对了,却全红
查看原帖
这题有什么要注意的吗?为啥我样例对了,却全红
276303
初十三楼主2020/8/10 16:09
#include<bits/stdc++.h>
using namespace std;

int main()
{
	int m;
	int a[1002],b[1002],c[1002];
	cin >> m;
	while(m--)
	{
	   bool x=false;
		long long int n,q,w,flag;
	  memset(b,0,sizeof(b));
	  memset(c,0,sizeof(c));
 	  b[1]=1;
	  flag=0;
	  cin >> n>>w;
	  int j,h;
	  for(int i=n;i>0;i--)
	  {
		int k=i,l=0;
		memset(a,0,sizeof(a));
		for(int f=1;f<1002;f++)
		{
			a[f]=k%10;
			k/=10;
			l++;
			if(k==0)
			break;
		}
		for(int j=1;j<1002;j++)
		{
			for(int h=1;h<=l;h++)
			{
				c[j+h-1]+=b[j]*a[h];
				if(c[j+h-1]>=10)
				{
					q=c[j+h-1]/10;
					c[j+h]+=q;
					c[j+h-1]%=10;
				}
			}
		}
		for(int f=1;f<1002;f++)
		b[f]=c[f];
		memset(c,0,sizeof(c));
	  }
	  for(int i=1001;i>0;i--)
	  {
		if(b[i]==0&&x==false)
		continue;
		else
		{
			x=true;
			if(b[i]==w)
			flag++;	
		}
	  }
	  cout << flag << endl;
	}
	return 0;
 } 

大佬们帮忙看看,谢谢啦。

2020/8/10 16:09
加载中...