[Codeforces394B]Very Beautiful Number(逆推)

mac2022-06-30  22

退役了吗?

退役了……

但是以后也许还不会一下子离开OI吧

因为我真的很喜欢OI啊

 

只是实力不如人

为了考上一个学OI的高中

 

要努力啊!

 

[本题]

一道很好的题目了(刷CF题看到的)

和394A一样,是比较好的

 

是一个递推

但是是从后往前的

枚举最后一位   for(int i=1; i<10; i++)    ;     c 为上一位的进位;

倒数第二位: A[p-1] = A[p] * x + c;    

倒数第三位:A[p-2] = A[p-1] * x + c; 

 

最后判定第一位与最后一位是否相等即可;

 

#include<bits/stdc++.h> using namespace std; int p,x; int A[1000010]; int main() { while(scanf("%d%d",&p,&x)==2) { int c=0; int ok=0; for(int i=1;i<10;i++) { c=0; A[p-1]=i; for(int j=p-2;j>=0;j--) { A[j]=(A[j+1]*x+c)%10; c=(A[j+1]*x+c)/10; } if(A[0]*x+c==A[p-1]&&A[0]!=0) { ok=1; break; } } if(ok) { for(int i=0;i<p;i++) printf("%d",A[i]); putchar('\n'); } else puts("Impossible"); } return 0; }

 

转载于:https://www.cnblogs.com/lincold/p/9985434.html

最新回复(0)