特价主机网站空间租用,互动营销案例100,WordPress清除文章缓存,搜索引擎推广成功的案例实战训练1—输出九九乘法表
问题描述:
在学校里学过九九乘法表#xff0c;编程实现打印九九乘法表。
输入格式#xff1a;
无输入
输出格式#xff1a; 1*11
2*12 2*24
3*13 3*26 3*39
4*14 4*28 4*312 4*416
5*15 5*210 5*315 5*420 5*525
6*16 6*212 6*318 6*424 6*5…实战训练1—输出九九乘法表
问题描述:
在学校里学过九九乘法表编程实现打印九九乘法表。
输入格式
无输入
输出格式 1*11
2*12 2*24
3*13 3*26 3*39
4*14 4*28 4*312 4*416
5*15 5*210 5*315 5*420 5*525
6*16 6*212 6*318 6*424 6*530 6*636
7*17 7*214 7*321 7*428 7*535 7*642 7*749
8*18 8*216 8*324 8*432 8*540 8*648 8*756 8*864
9*19 9*218 9*327 9*436 9*545 9*654 9*763 9*872 9*981
问题分析
仔细观察乘法表可以发现由行列构成每列的个数正好等于所在的行数类似于之前介绍过的字符图形使用for循环嵌套可以解决此问题。外循环变量i来控制行数起始值为1终值为9更新表达式为自增表达式内循环变量j来控制列数起始值为1由于第1行有1个等式第2行有2个等式……内层循环变量j的终值为行数i更新表达式也为自增表达式由外循环变量i和内循环变量j相乘的等式构成了内循环的循环体内循环加输出换行共同构成外循环体。具体程序代码如下 #includebits/stdc.h
using namespace std;
int main(){for(int i1;i9;i){//定义外层循环循环变量i来控制行数从1到9 for(int j1;ji;j){//定义内层循环循环变量j来控制列数从1到i couti*ji*j ;//输出i和j相乘的等式 }coutendl;//输出换行 } 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*312 4*416
5*1 5 5*210 5*315 5*420 5*525
6*1 6 6*212 6*318 6*424 6*530 6*636
7*1 7 7*214 7*321 7*428 7*535 7*642 7*749
8*1 8 8*216 8*324 8*432 8*540 8*648 8*756 8*864
9*1 9 9*218 9*327 9*436 9*545 9*654 9*763 9*872 9*981
可以采用格式化输出来实现让i*j的值占两列并且右对齐具体程序代码如下 #includebits/stdc.h
using namespace std;
int main(){for(int i1;i9;i){//定义外层循环循环变量i来控制行数从1到9 for(int j1;ji;j){//定义内层循环循环变量j来控制列数从1到i printf(%d*%d%2d ,i,j,i*j);//格式化输出ij以及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到20100元全部换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为k50-i-j然后计算所有零钱的面值之和是否为100,5元的张数乘以5加上2元的张数乘以2再加上1的张数乘以1即5*i2*jk100,同时这三种零钱的张数不能为0由于外循环变量和内循环变量的取值都不为0因此需要保证k不能为0如果两个条件表达式与的结果为真那么输出该方案可行输出这三种零钱的张数如果两个条件表达式与的结果为假那么该方案不可行内循环是外循环的循环体。具体程序代码如下 #includebits/stdc.h
using namespace std;
int main(){for(int i1;i20;i){//定义外循环循环变量i为5元的张数从1到20 for(int j1;j50;j){//定义内循环循环变量j为2元的张数从1到50 int k 50-i-j;//定义1元的张数 if((i*5 j*2k100) (k!0))//判断零钱面值总和是否为100并且所有的零钱张数不能为0 couti j k endl;}}return 0;
}