5X + 2Y +Z = 50 的所有非负整数解

这种题的解题方法都差不多,不停的循环,不过如果做一下细分,效率应该可以提升很多,下面把最常规效率也最低的代码贴上,有时间再优化

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int x, y, z;
 6
 7     for (x = 0; x <= 10; x++ )
 8     {
 9         for ( y = 0; y <= 25; y++)
10         {
11             for ( z = 0; z <= 50; z++)
12             {
13                 if ((5 * x + 2 * y + z) == 50)
14                 {
15                     cout<<"x = "<<x <<" , y = "<<y<<" , z = "<<z<<endl;
16                 }
17             }
18         }
19     }
20
21     return 0;
22 }

5X + 2Y +Z = 50 的所有非负整数解

时间: 2024-08-28 04:34:34

5X + 2Y +Z = 50 的所有非负整数解的相关文章

[C][算法][穷举]求31a + 30b + 29c + 28d = 1461的非负整数解

实现: 1 #include <stdio.h> 2 #define M 1461 3 4 int main(void) { 5 printf("%4s%4s%4s%4s\n", "a", "b", "c", "d"); 6 7 for (int a = 0; a < M; ++a) { 8 for (int b = 0; b < M; ++b) { 9 for (int c = 0

MT【342】条件为非负实数

已知$x,y,z$为非负实数,满足$(x+\dfrac{1}{2})^2+(y+1)^2+(z+\dfrac{3}{2})^2=\dfrac{27}{4}$,则$x+y+z$的最小值为______ 分析:由题意$x^2+y^2+z^2+x+2y+3z=\dfrac{13}{4}$故$\dfrac{13}{4}\le (x+y+z)^2+3(x+y+z)$得$x+y+z\ge\dfrac{\sqrt{22}-3}{2}$当$x=0,y=0,z=\dfrac{\sqrt{22}-3}{2}$时等号取

有向图的单源非负最短路径算法-dijkstra算法

dijkstra应用范围: 图中各边权值非负. 最短路径在现实中应用很广,比如在地图上找出最短路径等,这个算法很重要. 算法思想很简单,它不是找特定节点対之间的最短路径,它是找出源节点到所有其他节点的最短路径. 怎么找呢? 所需额外参数:path[] 记录路径. dist[] 记录路径长度, visited [] 标记已找到最短路径的节点. 第一步初始化, 将源节点visited标记为true, 并将其直连边长度,更新到dist[]数组. 其次要明白所有路径中最短的路径是哪一条? 肯定是源节点直

图论(四)------非负权有向图的单源最短路径问题,Dijkstra算法

Dijkstra算法解决了有向图G=(V,E)上带权的单源最短路径问题,但要求所有边的权值非负. Dijkstra算法是贪婪算法的一个很好的例子.设置一顶点集合S,从源点s到集合中的顶点的最终最短路径的权值均已确定.算法反复选择具有最短路径估计的顶点u,并将u加入到S中,对u 的所有出边进行松弛.如果可以经过u来改进到顶点v的最短路径的话,就对顶点v的估计值进行更新. 如上图,u为源点,顶点全加入到优先队列中. ,队列中最小值为u(值为0),u出队列,对u的出边进行松弛(x.v.w),队列最小值

HDOJ-1002 A + B Problem II (非负大整数相加)

http://acm.hdu.edu.cn/showproblem.php?pid=1002 输入的数都是正整数,比较好处理,注意进位. //非负大整数加法 # include <stdio.h> # include <string.h> # define MAX 1100 int main() { int t; char Num1[MAX], Num2[MAX], Num3[MAX];//Num3[] 用于保存结果 scanf("%d", &t); f

[家里蹲大学数学杂志]第187期实数集到非负实数集的双射有无穷多个间断点

设 $f:(-\infty,+\infty)\to [0,\infty)$ 是双射, 证明: $f$ 有无穷多个间断点. 证明: 用反证法. 若 $f$ 仅有有穷多个间断点 $x_1<x_2<\cdots<x_n$. 则 $f$ 在 $(x_{i-1},x_i)\ (i=1,\cdots,n+1, x_0=-\infty, x_{n+1}=+\infty)$ 上连续单射. 由此不难推出 $f$ 在 $(x_{i-1},x_i)$ 上严格单调\footnote{否则, $\exists\

【转】17种常用的JS正则表达式 非负浮点数 非负正数.

<input type='text' id='SYS_PAGE_JumpPage' name='SYS_PAGE_JumpPage' size='3' maxlength='5' onkeyup='this.value=this.value.replace(/[^1-9]\D*$/,"")' ondragenter="return false" onpaste="return !clipboardData.getData('text').match(

实变函数复习1|非负可测函数的积分

本节内容主要是使用分布函数来重述一些结论的证明 (抽象废话) 定义 设$f\in\mathcal{M} (E)$,则其分布函数定义为测度$$d_f (x):=\mathrm{m} E(\vert f\vert >x)$$其中$x\geq 0$. 关于分布函数有一个显然的重要不等式,概率论中称为切比雪夫不等式: 定理 若$f\in\mathcal{M} (E)$,则对任意$x>0$有不等式$$d_f (x)\leq\frac{1}{x}\int_E \vert f(t)\vert\ \mathr

编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从‘A’开始的字母表示

编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从‘A’开始的字母表示. 要求: 1) 采用顺序栈实现算法: 2)从键盘输入一个十进制的数,输出相应的八进制数和十六进制数. #include "stdio.h" #define StackSize 100 typedef char ElemType; typedef struct { ElemType data[StackSize]; int top; }SqStack; int trans(int d, in