韩信点兵(hanxin)

相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人
一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入包含多组
数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<
7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100。输入到文件
结束为止

java 代码:

package demo;

import java.util.Scanner;

public class demo03 {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int count=0;
		while (in.hasNextInt()) {
			int a=in.nextInt();
			int b=in.nextInt();
			int c=in.nextInt();
			int num=hanxin(a, b, c);
			if (num==-1) {
				System.out.println("Case"+(++count)+":"+"NO answer");
			}else{
				System.out.println("Case"+(++count)+":"+num);
			}

		}
	}
	private static int hanxin(int a,int b,int c) {
		for (int i = 10; i <=100; i++) {
			if ((i%3==a)&&(i%5==b)&&(i%7==c)) {
				return i;
			}
		}
		return -1;
	}

}

  

时间: 2024-11-03 23:54:49

韩信点兵(hanxin)的相关文章

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

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

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

【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"

南阳理工--韩信点兵

#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(

ACM试题 - 韩信点兵

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

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;   

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

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