练了练双向搜索,很有意义的尝试
俺的做法:
#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;
}
标签:int,因子,100,include,CP1046,最远
From: https://www.cnblogs.com/harumakigohan686/p/17031696.html