本程序采用 习语言 - 中英文C语言双语编译器 编译运行通过。 习语言 - 中文编程的好选择,C语言学习C程序编译的好工具。
今天习语言Q群里,幻象群友提出一个数学题,原起是一个智力题,原题是这样的:真假金币-有十袋金币,每一枚金币重10G。其中有一袋金币是假金币,每枚重量仅9G。有一把电子秤,怎样称一次就知道哪袋金币是假的?这个数学题的提出是幻想的一个解法,这个解法是不是最佳大家另讨论。
现在贴出这个数学题:
M,N,X,Y均为正整数,M取值范围为1-1000,X的可能取值为101 103 107 109 113 127 131 137 139 149
对于任意给定的整数M和N,验证方程1216M+XY=10N,未知数Y是否有可能存在两个解或多个解。
以下是习语言代码:
习语言独有支持的文章风格代码,看是文章,亦是代码,可编译运行。 习语言各大下载网站可下,欢迎下载尝试。
数学题:
M,N,X,Y均为正整数,M取值范围为1-1000,X的可能取值为101 103 107 109 113 127 131 137 139 149
对于任意给定的整数M和N,验证方程1216M+XY=10N,未知数Y是否有可能存在两个解或多个解。
解题分析:
M,N手工赋值的话很辛苦,最好是电脑自动赋值尝试。
M: 1-1000
X: 101 103 107 109 113 127 131 137 139 149
N: 小N - 大N : 小N,大N 可宏定义,也可以命令行输入
求Y
方程式 1216M+XY=10N
等效: XY = 10N - 1216M
条件: 10N -1216M > 0 即 10N > 1216M
同时 (10N -1216M) % X == 0
Y = (10N -1216M) / X
这里M,N确定后,X确定,Y就确定,要么存在解,要么不存在解。
X有10个可选项,就看这里面 Y存在解的情况是否大于1
〖
#包含 “习语言系统.接口”
#定义 小M 1
#定义 大M 1000
自然数 X值[] = {101,103,107,109,113,127,131,137,139,149};
#定义 X值个数 ( 类型长度(X值)/ 类型长度(自然数))
自然数 X值标志[] = {101,103,107,109,113,127,131,137,139,149};
自然数 Y值[] = {101,103,107,109,113,127,131,137,139,149};
整数类型 主函数()
{
//==用户代码开始
自然数 M,N,X,大N=10000,小N=1000;
整数类型 X位置,Y值计数=0,MN组合计数=0;
汉字类型 用户选择=0;
格式输出(“X共有%整个可选值,取值范围为101 103 107 109 113 127 131 137 139 149 %行”,X值个数 );
格式输出(“M取值范围为%整-%整,N取值范围为1000-10000,是否需要修改N值范围?(是/否)”,小M,大M);
用户选择 = 【汉字类型】 输入字(【无参数】);
如果(用户选择 等于 ‘是’){
输出字符串(“输入最小N值:”); 小N=【整数类型】 输入整数(【无参数】);
输出字符串(“输入最大N值:”); 大N=【整数类型】 输入整数(【无参数】);
}
格式输出(“M取值范围为%整-%整,N取值范围为%整-%整, %行”,小M,大M ,小N,大N );
格式输出(“解题进行中...,请等待.. %行” );
步进循环(M=小M;M ≤ 大M;M++)
步进循环(N=小N;N ≤ 大N;N++)
{
如果( 10*N ≤ 1216*M) 继续;
Y值计数 = 0;
步进循环(X位置 = 0;X位置 < X值个数;X位置 加加 )
X值标志[X位置]=0;
步进循环(X位置 = 0;X位置 < X值个数;X位置 加加 )
{
X = X值[X位置];
如果((10*N -1216*M) % X ≠ 0 ) 继续;
Y值[X位置] = (10*N -1216*M) / X ;
X值标志[X位置]=1;
Y值计数 ++;
}
如果(Y值计数 大于 1 ){
MN组合计数 ++;
格式输出(“ 【%整】 M=%整,N=%整时存在X,Y存在%整个解。 %行”,MN组合计数,M,N,Y值计数 );
步进循环(X位置 = 0;X位置 < X值个数;X位置 加加 )
如果(X值标志[X位置])
格式输出(“ --- X=%整,Y=%整。 %行”,X值[X位置],Y值[X位置] );
如果(MN组合计数 %20 == 0)暂停();
}
}
格式输出(“在制定M,N取值区间内,存在%整种MN组合,使得X可取指定几个值时,XY存两个或多个可选组合。 %行”, MN组合计数 );
//==用户代码结束
暂停();
返回 0;
}
〗
更多习语言系列作品介绍:
1、习丽妞 (linux环境下的中英文c语言)双语编程工具。
2、习语言编辑器: 一个支持中英文关键词高亮的文本编辑器。
3、中汇:中文汇编器
4、构建:中文构建工具(中文make工具)
5、习51-中文C51嵌入式开发伴侣
6、习佳佳-中文C++应用开发伴侣
7、习佳娃-中文JAVA开发伴侣
。。。。。。
欢迎爱好者试用,交流。