喝汽水
原题:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给10元,可以喝多少汽水
用十元钱购买十瓶饮料,现在一共有十瓶饮料,喝完之后得到十个空瓶,十个空瓶兑换五瓶饮料,现在一共有五瓶饮料,喝完得到五个空瓶,然后用四个空瓶兑换两瓶饮料,现在一共有两瓶饮料和一个空瓶,喝完之后得到两个空瓶,现在一共有三个空瓶,拿出两个空瓶兑换一瓶饮料,现在一共有一瓶饮料和一个空瓶,喝完之后得到一个空瓶,现在一共有两个空瓶,用这两个空瓶兑换一瓶饮料。所以可以喝的饮料的数量就是钱+空瓶子除以2 。
int main()
{
int money;
scanf("%d", &money);
int total = money;//喝饮料的数量
int empty = money;//空瓶子数量
while (empty > 1)
{
total = total + empty / 2;
empty = empty / 2 + empty % 2;
}
printf("可以喝 %d 瓶饮料\n", total);
return 0;
}
自幂数(水仙花数)
水仙花数,也被称为自幂数,是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为153=1^3+5^3+3^3。水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
当我们要求1-100000之间的自幂数时,首先我们要用for循环遍历数字,然后判断这些数字是否是自幂数。
要判断自幂数时,首先要确定这个数是几位数。然后求每一个数字的每一位,然后合计判断是否满足条件。
int main()
{
for (int i = 0; i <= 100000; i++)
{
int count = 0;
int tmp = i;
while (tmp != 0)//计算有多少个数字
{
count++;
tmp /= 10;
}
tmp = i;
int sum = 0;
while (tmp != 0)//求一个数字的每一位
{
sum +=pow(tmp % 10,count);
tmp /= 10;
}
if (sum == i)
{
printf("%d\n", i);
}
}
return 0;
}
打印菱形
首先我们将这个菱形一分为二,现打印上半部分
int a = 13;//a是总行数
for (i = 0; i <= a/2; i++)
{
for (j = 0; j <= a/2-i; j++)
{
printf(" ") ;
}
for (n = 0; n < 2 * i - 1; n++)
{
printf("*");
}
printf("\n");
}
再打印下半部分
for (i = 0; i <= a / 2; i++)
{
for (j = 0; j < i; j++)
{
printf(" ");
}
for (n = 0; n < a - 2*i ; n++)
{
printf("*");
}
printf("\n");
}
Sn之和
求Sn = a + aa + aaa + aaaa + aaaaa的前5项之和,其中a是一个数字,
例如:输入2,计算2 + 22 + 222 + 2222 + 22222
int main()
{
int n = 5;
int a = 0;
scanf("%d", &a);
int tmp = 0;
int sum = 0;
for (int i = 0; i < n; i++)
{
tmp = tmp * 10 + a;
sum += tmp;
}
printf("%d\n", sum);
return 0;
}
以上内容,如有问题,评论区留言或者私信。