NYOJ 34 韩信点兵

#include<stdio.h>
#include<string.h>
int a[5000],b[5000],c[5000];
int main()
{
  int i,j,x,y,z;
  while(scanf("%d%d%d",&x,&y,&z)!=EOF)
  {
    int temp=0,flag=0;
    for(i=0;i<5000;i++)
    {
      a[i]=x;
      x+=3;
    }
    for(i=0;i<5000;i++)
    {
      b[i]=y;
      y+=5;
    }
    for(i=0;i<5000;i++)
    {
      for(j=0;j<5000;j++)
      {
        if(a[i]==b[j])
        {
          c[temp++]=a[i];
        }
      }
    }
    for(i=c[0];i<5000;i+=15)
    if(i%7==z)
    {
      printf("%d",i);
      flag=1;
      break;
    }
    if(flag==0)
      printf("No answer");
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    printf("\n");
  }
}

//中国剩余定理

时间: 2024-10-26 03:29:20

NYOJ 34 韩信点兵的相关文章

【C】韩信点兵

我姐给我出了一道题,让我去编一个韩信点兵的程序 学了循环结构后,总算编出来了 警告!有大量膜法 1 #include <stdio.h> 2 3 int main() 4 { 5 int A,a; 6 int B,b; 7 int C,c; 8 int D; 9 printf("有一数,除以\n"); 10 11 scanf("%d",&A); 12 printf("余\n"); 13 scanf("%d"

ACM试题 - 韩信点兵

1. ACM试题题源:http://acm.nyist.net/JudgeOnline/problem.php?pid=34 关于韩信点兵:淮安民间传说着一则故事——“韩信点兵”,其次有成语“韩信点兵,多多益善”.韩信带1500名兵士打仗,战死四五百人,站3人一排,多出2人:站5人一排,多出4人:站7人一排,多出6人.韩信马上说出人数:1049. 2. 解题思路 思路一:可以先求出三组数,这三组数分别是分别用3,5,7除总人数在规定范围内所有的可能数值,然后求得这三组数中相同的那个数即可. 例如

韩信点兵-中国剩余定理(练习)

http://acm.nyist.net/JudgeOnline/problem.php?pid=34提交地址 韩信点兵-中国剩余定理. 题目可以用枚举很简单的做出来,在这里写是为了运用一下刚刚学习的中国剩余定理. 以前写过中国剩余定理的博客在这就不多说了. 如果下面的字母看不懂请看我的另一篇博客http://blog.csdn.net/u010123208/article/details/24314627 说一说思路吧. 1.首先我们要用数组存储我们的要的除数,和余数.我们用m[]来存储,余数

cogs——1786. 韩信点兵

1786. 韩信点兵 ★★★   输入文件:HanXin.in   输出文件:HanXin.out   简单对比 时间限制:1 s   内存限制:256 MB [题目描述] 韩信是中国军事思想“谋战”派代表人物,被后人奉为“兵仙”.“战神”.“王侯将相”韩信一人全任.“国士无双”.“功高无二,略不世出”是楚汉之时人们对其的评价.作为统帅,他率军出陈仓.定三秦.擒魏.破代.灭赵.降燕.伐齐,直至垓下全歼楚军,无一败绩,天下莫敢与之相争. 相传,韩信带兵打仗时,从不直接清点军队人数.有一次,韩信带1

数学上的一些小技巧韩信点兵的问题

对于韩信点兵的问题,一个数n:n%3=t1;n%5=t2;n%7=t3;如果现在告诉你这三个余数,问你怎么求出来n.只要求最小的一个n就行解法如下: 一.首先对于3来说,因为70能被5和7整除,并且对三取余等于1: 二.对于5来说,因为21能被3和7整除,并且对于5取余等于1 三.对于7来说,因为15能被3和5整除,并且对于7取余等于1. 四.则就是将70*t1+21*t2+15*t3;如果得到的数比105大,那么将这个数减去105:直到小于105: 原理就是: 70=3*n+1;所以70*t1

习题 2-1 位数 2-2 水仙花数 2-3 韩信点兵 2-4倒三角形 2-6 调和级数 2-7近似计算 2-8 子序列的和

2-1 位数 #include<stdio.h> #include<math.h> int main () { int n; for (n=100; n<=999; n++) { if(n == pow(n/100,3) + pow(n/10%10,3) + pow(n%10,3) ) printf("%d\n",n); } system("PAUSE"); return EXIT_SUCCESS; } 2-2 水仙花数 #includ

韩信点兵(中国剩余定理)

中国剩余定理是数论中的一个关于一元线性同余方程组的定理,说明了一元线性同余方程组有解的准则以及求解方法.又称为孙子定理,"韩信点兵""求一术""鬼谷算""隔墙算""剪管术""秦王暗点兵""物不知数"等名称. 例如:物不知数原文: 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何? 宋朝数学家秦九韶对"物不知数"问题作出了完整系统的解

南阳理工--韩信点兵

#include<stdio.h>int main(){  int a,b,c;  int x;  scanf("%d%d%d",&a,&b,&c);  for(x=10;x<=100;x++)  {   if(x%3==a&&x%5==b&&x%7==c)   {    printf("%d\n",x);    break;   }  }  if(x>100)  {   printf(

4.韩信点兵:有一个数,用3除余2;用5除余3;用7除余2,求满足条件的最小数

(1)用IF嵌套: #include <iostream>using namespace std; int main(){    int i=100;    int minNum;    while(i>0)    {        if(i%3==2)        {            if(i%5==3)            {                if(i%7==2)                {                    minNum=i;