您的位置:首页 > 教育 > 培训 > 网页制作公司报价谈判方案_51网站怎么打不开了_海外网站推广的公司_app推广是什么意思

网页制作公司报价谈判方案_51网站怎么打不开了_海外网站推广的公司_app推广是什么意思

2025/1/4 12:19:36 来源:https://blog.csdn.net/ALISHENGYA/article/details/144859346  浏览:    关键词:网页制作公司报价谈判方案_51网站怎么打不开了_海外网站推广的公司_app推广是什么意思
网页制作公司报价谈判方案_51网站怎么打不开了_海外网站推广的公司_app推广是什么意思

实战训练1—输出九九乘法表

问题描述:

在学校里学过九九乘法表,编程实现打印九九乘法表。

输入格式:

无输入

输出格式:


1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

问题分析:

仔细观察乘法表,可以发现由行列构成,每列的个数正好等于所在的行数,类似于之前介绍过的字符图形,使用for循环嵌套可以解决此问题。外循环变量i来控制行数,起始值为1,终值为9,更新表达式为自增表达式,内循环变量j来控制列数,起始值为1,由于第1行有1个等式,第2行有2个等式,……,内层循环变量j的终值为行数i,更新表达式也为自增表达式,由外循环变量i和内循环变量j相乘的等式构成了内循环的循环体,内循环加输出换行共同构成外循环体。具体程序代码如下:


#include<bits/stdc++.h>
using namespace std;
int main(){for(int i=1;i<=9;i++){//定义外层循环,循环变量i来控制行数,从1到9 for(int j=1;j<=i;j++){//定义内层循环,循环变量j来控制列数,从1到i cout<<i<<'*'<<j<<'='<<i*j<<' ';//输出i和j相乘的等式 }cout<<endl;//输出换行 } return 0;
}

如果想让九九乘法表里面的等式对齐,如下面运行结果:


1*1= 1
2*1= 2 2*2= 4
3*1= 3 3*2= 6 3*3= 9
4*1= 4 4*2= 8 4*3=12 4*4=16
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25
6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

可以采用格式化输出来实现,让i*j的值占两列,并且右对齐,具体程序代码如下:


#include<bits/stdc++.h>
using namespace std;
int main(){for(int i=1;i<=9;i++){//定义外层循环,循环变量i来控制行数,从1到9 for(int j=1;j<=i;j++){//定义内层循环,循环变量j来控制列数,从1到i printf("%d*%d=%2d ",i,j,i*j);//格式化输出i,j以及i和j相乘的结果 }printf("\n");//输出换行 } return 0;
}

实战训练2—换零钱

某人想将面值为100元的人民币兑换成若干张5元、2 元和1元面值的纸币,但要求零钱总数为50张,并且每种面值的纸币至少1张,请输出每一种可能的换法。

输入格式:

输出格式:

输出若干行,每行包含一种换法,分别表示5元的张数,2元的张数和1元的张数,中间用空格隔开。

输入输出样例:

输入样例

输出样例

1 46 3

2 42 6

3 38 9

4 34 12

5 30 15

6 26 18

7 22 21

8 18 24

9 14 27

10 10 30

11 6 33

12 2 36

问题分析:

根据题意,将100元的人民币兑换成5元、2元和1元的零钱,每种零钱至少1张,所以5元的取值可以从1到20(100元全部换5元的话,最多20张),2元的取值是1到50张(100元全部换2元,最多可以换50张),剩下的全部为1元的张数,要求列举出所有的方案数,所以可以使用for嵌套循环来实现,用外层循环变量i来控制5元的张数,内层循环j来控制2元的张数,那么1元的张数就为(50-i-j),外层循环变量i,起始值为1,终值为20,循环变量更新表达式为自增运算,内层循环变量j,起始值为1,终值为50,循环变量更新表达式也为自增运算,内层循环的循环体,首先计算1元的张数k为k=50-i-j,然后计算所有零钱的面值之和是否为100,5元的张数乘以5加上2元的张数乘以2,再加上1的张数乘以1,即5*i+2*j+k==100,同时这三种零钱的张数不能为0,由于外循环变量和内循环变量的取值都不为0,因此需要保证k不能为0,如果两个条件表达式与的结果为真,那么输出该方案可行,输出这三种零钱的张数,如果两个条件表达式与的结果为假,那么该方案不可行,内循环是外循环的循环体。具体程序代码如下:


#include<bits/stdc++.h>
using namespace std;
int main(){for(int i=1;i<=20;i++){//定义外循环,循环变量i为5元的张数,从1到20 for(int j=1;j<=50;j++){//定义内循环,循环变量j为2元的张数,从1到50 int k = 50-i-j;//定义1元的张数 if((i*5 +j*2+k==100) && (k!=0))//判断零钱面值总和是否为100,并且所有的零钱张数不能为0 cout<<i<<' '<<j<<' '<<k<<' '<<endl;}}return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com