0分求助!!!
查看原帖
0分求助!!!
1033223
rain200120楼主2025/6/15 11:33
#include<bits/stdc++.h>
using namespace std;
int A[50005], B[50005], C[100010];
int i, j,N,n[11], a[11],ANS[11];
string b;
int main() {
  	cin >> N;
  	int ans=0;
   	for(int p=0;p<N;p++){
   		cin>>n[p]>>a[p]; 
    	memset(A, 0, sizeof(A));
    	A[0] = 1;
    	A[1] = 1;
    	for (int k = 2; k <= n[p]; k++) {
    	    memset(B, 0, sizeof(B));
    	    memset(C, 0, sizeof(C));
    	    b = k+'0';
    	    B[0] = b.length();
    	    for (i = 1; i <= B[0]; i++) {
    	        B[i] = b[B[0] - i] - '0';
    	    }
    	    C[0] = A[0] + B[0] - 1;
    	    for (j = 1; j <= B[0]; j++) {
    	        for (i = 1; i <= A[0]; i++) {
    	            C[i + j - 1] += A[i] * B[j];
    	            C[i + j] += C[i + j - 1] / 10;
    	            C[i + j - 1] %= 10;
    	        }
    	    }
    	    if (C[C[0] + 1] > 0) C[0]++;
    	    while (C[C[0]] == 0 && C[0] > 1) {
    	        C[0]--;
    	   }
    	    A[0] = C[0];
    	    for (i = 1; i <= A[0]; i++) {
    	        A[i] = C[i];
    	    }
    	}
    	for (i = A[0]; i >= 1; i--) {
    	    if(C[i]==a[p]) ANS[p]++;
    	}
	}
	for(int i=0;i<N;i++){
        if(i==N-1)cout<<ANS[i];
		else cout<<ANS[i]<<endl;
	}
}
2025/6/15 11:33
加载中...