day18--牛奶数字游戏--2.22
习题概述
题目描述
奶牛们在玩一种数字游戏,Bessie 想让你帮她预测一下结果。游戏开始时,Bessie 将得到一个正整数 N。此时她的分数为 0。
奶牛们按照以下规则对 N 进行变换:
·如果 N 是奇数,那么将它乘以 3 后再加 1。
·如果 N 是偶数,那么将它除以 2。
数字每变换一次,Bessie 就得到 1 分。当 N=1 时,游戏结束。此时的分数就是她的最终得分。
输入格式
一行,一个整数 N。
输出格式
一行,一个整数,为 Bessie 的最终得分。
代码部分
#include<bits/stdc++.h>
using namespace std;
int N;
double s=0;//分数
int main(){
cin>>N;
while(N!=1)
{
if(N%2!=0) N=N*3+1;
else N=N/2;
s++;
}
cout<<s;
return 0;
}
心得体会
while和if在C++中的区别:
相同点:均可进行一次判断;
不同点:while本质上是循环,当判断条件为true时,进入循环体,然后再接着进行判断,直到判断条件为false,跳出循环;if虽然也可以进行判断,当判断条件为true时,执行语句sum++,当判断语句为false时,执行语句targe++,不会接着再次返回到if,也就是说,不会再继续进行判断。
综上所述:while本质上是循环,if本质上是一个条件判断。
day18--拿放大镜看杂志暴力算法--2.22
习题概述
题目背景
Mirko 在拿放大镜看杂志。
题目描述
他正在看一面 r 行 c 列的杂志。放大镜有两个参数 zr,zc,表示把每个字符都转换成一个 zr 行 zc 列的矩阵。
给出原始杂志,请你帮他找出杂志在放大镜下的影像。
输入格式
输入第一行四个整数 r,c,zr,zc。
接下来的 r 行,每行 c 个字符。字符可能为数字,字母或 .
。
输出格式
输出一个 r×zr 行,c×zc 列的矩阵,表示放大镜下的影像
代码表示
#include<bits/stdc++.h>
using namespace std;
char ch[100][100];
int r,c,zr,zc;
int main()
{
cin>>r>>c>>zr>>zc;
for(int i=1; i<=r; i++)
for(int j=1; j<=c; j++)
cin>>ch[i][j];//输入
for(int i=1; i<=c; i++)//原行数
for(int i1=1; i1<=zr; i1++)//放大的行数
{
for(int j=1; j<=c; j++)//原列数
for(int j1=1; j1<=zc; j1++)//放大的列数
cout<<ch[i][j];
cout<<endl;
}//暴力
return 0;
}
心得体会
行列都有的时候,需要想想的是双重循环,即行循环再列循环;通过暴力算法循环输出;注意定义时不要忘记数组的定义 char ch[100][100];