#CP1046. 离5的倍数最远的因子
练了练双向搜索,很有意义的尝试
俺的做法:
#include <stdio.h>
#include<stdlib.h>
#include <ctype.h>
#include <string.h>
int main()
{
int n,m=0,x=0;
int p;
int a[100];
int b[100];
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
if(n%i==0)
{
a[m]=i;
m++;
}
}
int q;
for(int i=0; i<m; i++)
{
p=abs(a[i]-5);
if(a[i]==1)
{
b[x]=1;
x++;
continue;
}
while(p>=5)
{
p=p-5;
}
q=abs(p-5);
if(q<p)
{
b[x]=q;
x++;
}
else
{
b[x]=p;
x++;
}
}
int max=b[0];
for(int i=0; i<x; i++)
{
if(b[i]>max)
{
max=b[i];
}
}
int flag=0;
for(int i=0; i<x; i++)
{
if(b[i]==max)
{
flag=i;
break;
}
}
printf("%d\n",a[flag]);
return 0;
}
posted on 2023-01-06 21:55 harumakigohan 阅读(25) 评论(0) 收藏 举报
浙公网安备 33010602011771号