NYOJ34韩信点兵
来源:互联网 发布:丰城市网络问政网 编辑:程序博客网 时间:2024/04/28 21:30
中国剩余定理:中国剩余定理,又称为中国余数定理、孙子剩余定理,古有“韩信点兵”、“孙子定理”、“鬼谷算”、“隔墙算”、“剪管术”、“秦王暗点兵”、“物不知数”之名,是数论中的一个重要命题。
在中国古代著名数学著作《孙子算经》中,有一道题目叫做“物不知数”,原文如下:
有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?
即,一个整数除以三余二,除以五余三,除以七余二,求这个整数。中国数学家秦九韶于1247年做出了完整的解答,口诀如下:
三人同行七十希,五树梅花廿一支,七子团圆正半月,除百零五使得知
这个解法实际上是,首先利用秦九韶发明的大衍求一术求出5和7的最小公倍数35的倍数中除以3余数为1的最小一个70(这个称为35相对于3的数论倒数),3和7的最小公倍数21相对于5的数论倒数21,3和5的最小公倍数15相对于7的数论倒数15。然后70X2+21X3+15X2=233
233便是可能的解之一。它加减3、5、7的最小公倍数105的若干倍仍然是解,因此最小的解为233除以105的余数23。
附注:这个解法并非最简,因为实际上35就符合除3余2的特性,所以最小解是:35X1+21X3+15X2-3X5X7=128-105=23 最小解加上105的正整数倍都是解
物不知数”的解法实际上给出了求解一般同余方程组的方法。设m1,m2,…,mi为两两互质的正整数,a1,a2,…,ak为任意整数,则同余方程组
x≡a1(mod m1);
x≡a2(mod m2);
……
x≡ai(mod mi);
总有整数解,并且它的全部解可模仿上述方法得到。
题目 :
韩信点兵
时间限制:3000 ms | 内存限制:65535 KB
难度:1
- 描述
- 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。
- 输入
- 输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7)。例如,输入:2 4 5
- 输出
- 输出总人数的最小值(或报告无解,即输出No answer)。实例,输出:89
- 样例输入
2 1 6
- 样例输出
41
#include <iostream>using namespace std;int main(){ int a,b,c; while(cin>>a>>b>>c) { int s=a*70+b*21+15*c; s%=105; if(s>100||s<10) cout<<"No answer"<<endl; else cout<<s<<endl; } return 0;}
0 0
- NYOJ34韩信点兵
- nyoj34韩信点兵
- nyoj34 韩信点兵
- nyoj34韩信点兵
- 韩信点兵【nyoj34】
- NYOJ34 - 韩信点兵
- nyoj34
- //韩信点兵
- 韩信点兵
- 韩信点兵
- 韩信点兵
- 韩信点兵
- 韩信点兵
- 韩信点兵
- 韩信点兵
- 韩信点兵
- 韩信点兵
- 韩信点兵
- ubuntu12.04 安装jdk
- Twitter Storm: Transactional Topolgoy简介
- Windows驱动开发——WDM驱动
- 【四圣龙神录的编程教室】第16章、来制作洩矢大人的弹幕吧
- hdu 1850 Being a Good Boy in Spring Festival
- NYOJ34韩信点兵
- Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解
- 基础练习30
- JS删除字符串中重复字符
- awgn函数与高斯白噪声
- 越界
- Ubuntu 12.04 root用户登录设置
- maven教程一:maven与web project项目转换
- 九度OnlineJudge-搬水果(1107)