bnuoj 20832 Calculating Yuan Fen(暴力模拟)

时间:2021-02-28 20:37:53

http://www.bnuoj.com/bnuoj/problem_show.php?pid=20832

【题意】:
 给你一串字符串,求一个ST(0<ST<=10000),对字符串中字符分别加上(ST-'A'),然后得到的数组分别连起来组成字符串,相邻两个字符相加,取各位数,赋值到下一行,每行讲减少一个字符,直到出现3个字符为100时,输出这时候的ST

【题解】:
 完全暴力模拟
【code】:

 #include <iostream>
#include <stdio.h>
#include <string>
#include <string.h>
#include <math.h>
#include <algorithm> using namespace std; int getST(char *names)
{
int a[];
int len = strlen(names);
int i;
int ST;
int b[],cnt=;
for(ST=;ST<=;ST++)
{
for(i=;i<len;i++)
{
a[i]=names[i]-'A'+ST;
}
cnt=;
for(i=len-;i>=;i--)
{
int m = a[i];
while(m)
{
b[cnt]=m%;
m=m/;
cnt++;
}
}
for(i=;i<cnt/;i++)
{
swap(b[i],b[cnt-i-]);
}
int j;
for(i=;i<cnt-;i++)
{
for(j=;j<cnt--i;j++)
{
b[j]=(b[j]+b[j+])%;
}
} if(b[]==&&b[]==&&b[]==) return ST;
}
return -;
} int main()
{
char names[];
while(~scanf("%s",names))
{
int ans = getST(names);
if(ans==-)
{
puts(":(");
}
else
{
printf("%d\n",ans);
}
}
return ;
}