鱼C论坛

 找回密码
 立即注册
楼主: udsky

求个算法,纠结了好久!

[复制链接]
发表于 2012-2-3 09:06:48 | 显示全部楼层 |阅读模式
10鱼币
取1-10数中的随意5个数,然后判断其中3个数相加是否为10的倍数,另2个数相加如果也为10的倍数,则返回0,如果不为10的倍数,则返回其个位的值。
提取1-10的数可以重复,如可以取5,5,10,10,5;
但如果取好了5个值,不可以重复累加,如1号位的5,用过了,1号位的值就不能再这次循环中使用了。
不知道我说得明白了不,望解答,谢谢!!

最佳答案

查看完整内容

int iiteam(int * info) { int i3,i2,result; i3=info[0]+info[1]+info[2]; i2=info[3]+info[4]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result;}; i3=info[0]+info[1]+info[3]; i2=info[2]+info[4]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result;}; i3=info[0]+info[1]+info[4]; i2=info[2]+info[3]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result; ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-3 09:06:49 | 显示全部楼层
本帖最后由 诶、猪 于 2012-2-3 10:52 编辑

int iiteam(int * info)
{
    int i3,i2,result;
    i3=info[0]+info[1]+info[2];    i2=info[3]+info[4]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result;};
    i3=info[0]+info[1]+info[3];    i2=info[2]+info[4]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result;};
    i3=info[0]+info[1]+info[4];    i2=info[2]+info[3]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result;};
    i3=info[0]+info[2]+info[3];    i2=info[1]+info[4]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result;};
    i3=info[0]+info[2]+info[4];    i2=info[1]+info[3]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result;};
    i3=info[0]+info[3]+info[4];    i2=info[1]+info[2]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result;};
    i3=info[1]+info[2]+info[3];    i2=info[0]+info[4]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result;};
    i3=info[1]+info[2]+info[4];    i2=info[0]+info[3]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result;};
    i3=info[1]+info[3]+info[4];    i2=info[0]+info[2]; if(0==(i3%10)){result=(0==(i2%10))?0:(i2%10);return result;};
    return -1;
}

int main(void)
{
    int a[5]={5,5,2,8,10};
    printf("%d\n",iiteam(a));
    getch();
}


不知道楼主是不是表达的这个意思,本人是初学者,若不是这个意思还请见谅....     不为其他,只为共同进步!!!

论坛有限制,:(这个表示的是 冒号  ":"

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-3 13:19:59 | 显示全部楼层
本帖最后由 Mr.C 于 2012-2-3 13:20 编辑

但如果取好了5个值,不可以重复累加,如1号位的5,用过了,1号位的值就不能再这次循环中使用了。

你的问题描述的我不是很懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-3 21:20:42 From FishC Mobile | 显示全部楼层
先谢谢1楼的兄弟,然后回复2楼的兄弟。意思是如果取好了五个数,每个数只能使用一次。不知道这样是否明白?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-4 09:52:19 | 显示全部楼层
请问楼主 如果不为10的倍数,则返回其个位的值。 这里会有多个解,取哪个?
  1. //暴力枚举
  2. int d[5],i,j,k,s=0,sum,flag,ans;
  3.        
  4.         for(i=0;i<5;i++)
  5.         {
  6.                 scanf("%d",&d[i]);
  7.                 s+=d[i];
  8.         }
  9.         flag=0;
  10.         for(i=0;i<5;i++)
  11.         {
  12.                 sum=d[i];
  13.                 for(j=i+1;j<5;j++)
  14.                 {
  15.                         sum+=d[j];
  16.                         for(k=j+1;k<5;k++)
  17.                         {
  18.                                 sum+=d[k];
  19.                                
  20.                                 if(sum%10==0&&(s-sum)%10==0)flag=1;
  21.                                 ans=sum%10;
  22.                                 if(flag)break;
  23.                         }
  24.                         if(flag)break;
  25.                 }
  26.                 if(flag)break;
  27.         }
  28.         printf("%d",ans);
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-6 16:49:34 | 显示全部楼层
基本上看明白了。我想到的是,在取了五个数之后,用三层循环分别作为三个数,第一层循环为 i=0到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-6 16:58:25 | 显示全部楼层
不好意思,按错了,没写完不小心按上去了。现在看了5楼的帖子,发现想的完全一样,就不用了。代码写的不错。如果再加上随机函数就更完美了,应该把分给5楼的:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-13 08:57:21 | 显示全部楼层
学习学习{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-13 15:30:58 | 显示全部楼层
我只是回下帖子,LZ莫要打我……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-13 15:31:30 | 显示全部楼层
我只是回下帖子,LZ莫要打我……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-13 15:32:07 | 显示全部楼层
zianan 发表于 2014-8-13 15:31
我只是回下帖子,LZ莫要打我……

额。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-15 11:26:59 | 显示全部楼层
观望中!:dizzy:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-8 23:35:50 | 显示全部楼层

很不错呀,多谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-16 22:00:56 | 显示全部楼层
还差1个鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 18:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表