目录
一、输出菱形
二、喝汽水问题
方法1:一步一步来
方法二:直接套公式
一、输出菱形
输出类似于下图的菱形:
通过分析:1、先分为上下两部分输出
2.在输出前先输出空格
3.找规律进行输出
可知,可令上半部分line行,下半部分便是line-1行。
找空格的规律:当line为7时,第一行有6个空格,第二行有5个……第七行没有
起始点便是line-1,终止为0
找*规律: 当line为7时,第一行有1个*,第二行有3个……第七行有13个
规律是:line*2-1
int main()
{
int line = 0;
scanf("%d", &line);
//开始输出上半部分
for (int i = 1; i <= line; i++)
{
//先输出空格
for (int j = 1; j <= line - i; j++)
{
printf(" ");
}
for (int j = 1; j <= 2 * i-1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
开始输出下半部分:
int main()
{
int line = 0;
scanf("%d", &line);
//开始输出上半部分
for (int i = 1; i <= line; i++)
{
//先输出空格
for (int j = 1; j <= line - i; j++)
{
printf(" ");
}
for (int j = 1; j <= 2 * i-1; j++)
{
printf("*");
}
printf("\n");
}
//开始输出下半部分
for (int i = 1; i <= line - 1; i++)
{
for (int j = 1; j <= i; j++)
{
printf(" ");
}
for (int j = 1; j <= (line - i) * 2 - 1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
总结:我们要注意找到各行空格和*数量与第几行之间的数量关系
二、喝汽水问题
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给n元,可以喝多少瓶汽水
方法1:一步一步来
int main()
{
int n = 0;
int total = 0;
scanf("%d", &n);//自己输入钱数
total = n;
int bottle = n;//一开始剩的瓶子数是钱数
while (bottle >= 2)
{
total = total + bottle / 2;
bottle = bottle / 2 + bottle % 2;
}
printf("%d", total);
return 0;
}
需要注意的是 bottle = bottle / 2 + bottle % 2;当n=10时,喝完剩10个瓶子,换5瓶。5瓶能再换2瓶,还剩一个空瓶便是+bottle % 2
方法二:直接套公式
各位多试几组之后便很容易就可以看出最后喝的总瓶数是你钱的2倍减一
可直接打印2*n-1;
第一次题目便到这里,以后还会继续分享的,如有疑惑的地方,各位可以随时问我的。