#include<iostream>
using namespace std;
int main()
{
int n,i;
cin >> n;
i = 0;
while (n > 1)
{
if (n % 2 == 0)
{
n = n / 2;
}
else
{
n = (3*n + 1) / 2;
}
i += 1;
}
cout << i << endl;
return 0;
}
选择结构
多条件if
if(条件1)
{
执行语句1
}
else
{
if(条件2)
{
执行语句2
}
else
{
执行语句3
}
}
嵌套if
if ( a>b ) {
if ( a>c ) {
max = a;
} else {
max = c;
}
} else { //{}确定执行程序(良好的编程习惯)
if ( b>c ) {
max = b;
} else {
max = c;
}
}
三目运算符
表达式1 ? 表达式2 : 表达式3;
1真返2
1假返3
switch
swich(表达式) //整型或字符型
{
case 常量1:
break; //跳出当前循环
case 常量2:
break:
default: //其他情况默认
break;
}
循环结构
while
while(循环条件)
{
循环体
}
// 猜数字
srand((unsigned int)time(NULL));
int n,m = 0;
n = rand() % 100 + 1;
while(m != n)
{
cin >> m;
if (m > n)
{
cout << "猜大啦" << endl;
}
else
{
if (m < n)
{
cout << "猜小啦" << endl;
}
}
}
cout << "猜对啦" << endl;
do…while
- 先执行一次循环体
do
{
循环体
}
while (循环结构)
// 水仙花数
int n,a,b,c;
n = 99;
do
{
n++;
a = pow(n % 10, 3); //个位
b = pow((n / 10) % 10 ,3); //十位
c = pow((n / 100) , 3); //百位
if ( a + b + c == n)
{
cout << n << endl;
}
} while ( n < 999 );
for
for(起始表达式;条件表达式;末尾循环体)
{
循环语句
}
int n,a,b,c,d;
n = 1;
cin >> d;
for (; n <= 100; n++)
{
a = n % 10;
b = n / 10;
c = n % d;
if (a == d || b == d || c == 0)
{
cout << "敲桌子" << endl;
}
else
{
cout << n << endl;
}
}
嵌套循环
// 打印星图
int i, j;
for (i = 1; i <= 10; i++)
{
for (j = 1; j <= 10; j++)
{
cout << "*" << " ";
}
cout << endl;
}
break
— 跳出选择结构或者循环结构continue
— 在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环goto
— 可以无条件跳转语句