#include
int main()
{
int a[200000],b[200000];
int n=0,i=0,j=0,k=0,m=0;
scanf("%d",&n);
for(i=0;i
{
scanf("%d",&a[i]);
}
for(i=0;i
{
for(j=0;j
{
if(a[i]>a[j]&&a[j]!=0)
{
b[k]=a[i]%a[j];
k++;
}
}
}
m=b[0];
for(i=1;i<=k;i++)
{
if(b[i]>m)m=b[i];
}
printf("%d",m);
return 0;
}
本人新手,题目不会,求大神解答
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- charm_of_code 2017-03-03 01:29关注
根据题目的意思是要找出最大的余数,所以可以使用擂台法,每次求得的余数和原有的余数做比较,如果大于原有的就更新b值
#include
int main()
{
int a[200] ,b;
int n=0,i=0,j=0,k=0,m=0;
scanf("%d",&n);
for(i=0;i {
scanf("%d",&a[i]);
}for(i=0;i {
for(j=0;){
if(a[j]!=0&&(b {
b=a[i]%a[j];
}else{
j++;
}
}
m=b[0];
for(i=1;i {
if(b[i]>m)m=b[i];
}
printf("%d",m);
return 0;
}解决 无用评论 打赏 举报