cf B Very Beautiful Number

时间:2024-04-11 11:04:55

题意:给你两个数p和x,然后让你找出一个长度为p的数,把它的最后移到最前面之后得到的数是原来数字的x倍,有很多这样的数取最小。

思路:枚举最后一位,然后就可以推出整个的一个数,然后比较得到的数的第一个数字和枚举的数字是否相等既可以。

 #include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std; int p,x;
char str[]; int main()
{
scanf("%d%d",&p,&x);
bool flag=false;
for(int i=; i<=; i++)
{
int m=i;
int c=;
int y=i;
str[]=m+'';
for(int j=; j<=p; j++)
{
int cc=(y*x+c)/;
y=(y*x+c)%;
str[j]=y+'';
c=cc;
}
if(y==m&&str[p-]!=''&&c==)
{
flag=true;
for(int k=p-; k>=; k--)
{
printf("%c",str[k]);
}
printf("\n");
break;
}
}
if(!flag) printf("Impossible\n");
return ;
}