@sensitive-cs
2016-10-19T17:59:02.000000Z
字数 559
阅读 783
给出两个数字a和b,要求找到一个c,使得c>a且c中所有的4和7按顺序抽出来只存在一个b。
定义三个字符串,保存a和b,a递增,每一次将a中的4和7按顺序抽出组成c,判断c和b是否相等。若相等,则输出此时的a。
#include <stdio.h>
char a[15];
char b[15];
char c[15];
int main()
{
long long e,f,ia = 0,ib = 0,i = 0,j = 0;
int cal = 0;
scanf("%I64d%I64d",&e,&f);
while (f != 0)
{
b[ib] = f % 10;
f /= 10;
ib++;
}
for (i = e + 1; ;i++)
{
long long temp = i;
while (temp != 0)
{
a[ia] = temp % 10;
temp /= 10;
ia++;
}
for (j = 0;j < ia;j++)
{
if (a[j] == 7 || a[j] == 4)
{
c[cal] = a[j];
cal++;
}
}
for (j = 0;j < ib;j++)
{
if (b[j] != c[j])
break;
}
if (j == ib && j == cal)
{
printf("%I64d\n",i);
break;
}
else
{
cal = 0;
ia = 0;
for (j = 0;j < 15;j++)
{
a[j] = 0;
c[j] = 0;
}
}
}
return 0;
}