| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 14817 人关注过本帖
标题:韩信点兵c语言
取消只看楼主 加入收藏
星行星际
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-1-6
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
韩信点兵c语言
相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人、17人一列余2人、19人一列余10人、23人一列余1人、29人一列余11人。但限时为500ms,我超时很多次都不行,即输入3 5 7 13 17 19 23 29它们分别被余数为1 2 4 6 2 10 1 11输出总兵士数,要求输出满足条件的最小的一个,但要满足8种排法的每一种排法至少可排一列。(保证给的数据,有结果且计算的结果不会超过2的63次方)
搜索更多相关主题的帖子: 汉高祖刘邦 大将军韩信 c语言 
2016-03-16 12:07
星行星际
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-1-6
收藏
得分:0 
#include <stdio.h>

int main()
{
 /*  long long N=1000000000000000000;*/
   int a[8],b[8];
   int i,n;
   for(i=0;i<8;i++)
    scanf("%d",&a[i]);
   for(i=0;i<8;i++)
    scanf("%d",&b[i]);
   for(n=100;;n++)
   {
        if(n%a[0]==b[0])
        if(n%a[1]==b[1])
        if(n%a[2]==b[2])
        if(n%a[3]==b[3])
        if(n%a[4]==b[4])
        if(n%a[5]==b[5])
        if(n%a[6]==b[6])
        if(n%a[7]==b[7])
        break;
   }
   printf("%d",n);
    return 0;
}
检测时显示超时,有没有更好的方法呢?
2016-03-16 12:14
星行星际
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-1-6
收藏
得分:0 
回复 3楼 grmmylbs
输入格式
要求由键盘输入A,B,C,D,E,F,G,H,a,b,c,d,e,f,g,h十六个数,分别代表每A人一列余a、每B人一列余b、每C人一列余c、每D人一列余D、每E人一列余e、每F人一列余f、每G人一列余g、每H人一列余h,其中A,B,C,D,E,F,G,H为互不相等的质数

忘了说了,这个数字都是要键盘输入的,并不是只要满足一组就可以的

输入样例
2 3 5 7 11 13 17 19
1 1 1 1 1 1 1 1


输出样例
9699691
2016-03-16 12:46
星行星际
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-1-6
收藏
得分:0 
回复 5楼 qq1023569223
oj直接检测错误
2016-03-16 13:51
星行星际
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-1-6
收藏
得分:0 
回复 6楼 grmmylbs
显示超时啊
2016-03-16 13:52
星行星际
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-1-6
收藏
得分:0 
回复 11楼 alice_usnet
是学校一个测试的网址,提交的题目能通过测试才算成功
2016-03-17 15:13
星行星际
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-1-6
收藏
得分:0 
回复 12楼 alice_usnet
表示看不懂...
2016-03-17 15:15
快速回复:韩信点兵c语言
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057748 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved