
🌈这里是say-fall分享,感兴趣欢迎三连与评论区留言 🔥专栏:《C语言从零开始到精通》 《C语言编程实战》 《数据结构与算法》 《小游戏与项目》 💪格言:做好你自己,你才能吸引更多人,并与他们共赢,这才是你最好的成长方式。
本系列博客将会更新一些每日的刷题代码
#include<stdio.h>
int main()
{
int money = 20;
int b_cap = 0;
int count = 0;
while (money)
{
//方法一:喝一次汽水判断一次
//喝汽水
money--;
count++;
b_cap++;
//判断能不能换汽水喝
if (b_cap >= 2)
{
b_cap -= 2;
count++;
b_cap++;
}
}
printf("%d ", count);
//方法二:全部喝完统一判断
//int money = 20;
//int b_cap = 0;
//int count = 0;
////喝完汽水
//count = money;
//b_cap = money;
////换汽水
//while (b_cap >= 2)
//{
// int exchange = b_cap / 2;
// count += exchange;
// b_cap =exchange + (b_cap % 2);
//}
//printf("%d ", count);
return 0;
}
#include <stdio.h>
int main()
{
int x = 6;
int y = 1;
while (x > 0)
{
for (int i = 0;i < x;i++)
printf(" ");
for (int j = 0;j < y;j++)
printf("*");
for (int i = 0;i < x;i++)
printf(" ");
x--;
y += 2;
printf("\n");
}
while (x <= 6)
{
for (int i = 0;i < x;i++)
printf(" ");
for (int j = 0;j < y;j++)
printf("*");
for (int i = 0;i < x;i++)
printf(" ");
x++;
y -= 2;
printf("\n");
}
return 0;
}“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=13+53+3^3,则153是一个“水仙花数”。
//水仙花数
#include <stdio.h>
#include <math.h>
int main()
{
for (int z = 1;z <= 100000;z++)
{
int x = z;
int sum = 0;
int i = 0;
int num = 0;
int n = 0;
int rem[7] = { 0 };
do
{
rem[i] = x % 10;
num = x / 10;
x = x / 10;
n++;
i++;
} while (num != 0);
for (i = 0;i < n;i++)
{
int power = 1;
for (int j = 0;j < n;j++)
{
power *= rem[i];
}
sum += power;
}
if (sum == z)
printf("%d ", z);
}
return 0;
}例如:2 + 22 + 222 + 2222 + 22222
//计算求和
//方法一:
#include<stdio.h>
int main()
{
int a = 0;
printf("请输入数字a,将得到:Sn(Sn=a+aa+aaa+aaaa+aaaaa)\n");
scanf("%d",&a);
int x = 5;
int y = 0;
int sum = 0;
while (x >= 1)
{
int power = 1;
y = 5 - x;
for (int i = 0;i < y; i++)
{
power *= 10;
}
sum += (x * a * power);
x--;
}
printf("%d\n", sum);
return 0;
}
//方法二:
#include<stdio.h>
int main()
{
int a = 0;
printf("请输入数字a,将得到:Sn(Sn=a+aa+aaa+aaaa+aaaaa)\n");
scanf("%d", &a);
int sum = 0;
int current = 0;
for (int i = 0;i<5;i++)
{
current = 10 * current + a;
sum += current;
}
printf("%d\n", sum);
return 0;
}
//斐波那契数
//递归
#include<stdio.h>
int fib_recu(int x)
{
if (x == 1 || x == 2)
{
return 1;
}
else if (x > 2)
{
return fib_recu(x - 1) + fib_recu(x - 2);
}
else
{
printf("输入错误\n");
return -1;
}
}
//迭代
int fib_iter(int x)
{
if (x == 1 || x == 2)
{
return 1;
}
else if (x >= 3)
{
int a = 1;
int b = 1;
int c = 1;
for (int i = 3;i <= x ;i++)
{
c = a + b;
a = b;
b = c;
}
return c;
}
else
{
printf("重新输入");
return -1;
}
}
int main()
{
int x = 0;
printf("您要求第几个斐波那契数:");
int count = scanf("%d", &x);
if (count == 1)
{
printf("%d\n", fib_iter(x));
}
return 0;
}#include <stdio.h>
//编写一个函数实现n的k次方,使用递归实现。
int power(int n,int k)
{
int ret = n;
if (k == 0)
{
return 1;
}
else if (k >= 1)
{
ret *= power(n, k - 1);
return ret;
}
else
{
printf("输入错误,不支持负指数");
return -1;
}
}
int main()
{
int n = 0;
int k = 0;
printf("输入n,k,计算n的k次方:");
int count = scanf("%d %d", &n,&k);
if (count == 2)
{
printf("%d\n", power(n,k));
}
return 0;
}
//计算一个数的每位之和(递归实现)
#include<stdio.h>
int DigitSum(int n)
{
if (n > 9)
{
return n % 10 + DigitSum(n / 10);
}
else
{
return n;
}
}
int main()
{
int n = 0;
scanf("%d", &n);
printf("%d\n",DigitSum(n));
/*循环实现*/
int sum = 0;
if (n>=10)
{
while (n > 0)
{
int rem = n % 10;
sum += rem;
n = n / 10;
}
printf("%d\n", sum);
}
else
{
printf("%d\n", n);
}
return 0;
}