前言:
欢迎打开这篇博客,从今天开始,每天和大家分享一个C语言小细节,不久之后还会追加C++
一些常常被忽视的小细节和思想统一的编程题目是这个专栏的核心哦
虽然简单但千万别在细节处失分!!!!
感兴趣的赶紧收藏关注起来吧,不要迷路~
目录
1.转义字符\xhh和\ddd
1.1\xhh 可以表示1~2个16进制数字
那有的小可爱就会问了:
16进制数字有哪些? 答:0~9和a~f(a代表10,依次递增f代表15)
和我们最熟悉的10进制一样,基本组成数字最大就是9
所以很自然想到16进制最大是15,8进制最大是7
1.2 \ddd 可以表示1~3个8进制数字
8进制数字有哪些 ? 答:0~7
学会了吗?看个题加深理解吧
‘数字’ 把原本的数字变成了字符的形式,所以可以储存在char类型的数组里
但是B中‘\8'的表述显然有误,这属于\ddd,应该是1~3个八进制数字,八进制不包括8
注意:D中数组的[],即下标引用也可以是一个常量表达式
2.兔子个数
一眼望去好复杂,好像兔子个数一直在毫无规律的变化不断累加
但是往往碰壁的时候也是转机萌生的时候!!
我们回想起之前遇到的剪绳子题目,好像也是杂乱无章
(剪绳子链接:https://blog.csdn.net/weixin_71138261/article/details/126307780?spm=1001.2014.3001.5501)
所以我们也搏一搏,把每个月份的兔子个数和月份对应起来,用列举法找规律,万一柳暗花明,毕竟瞪眼也是浪费时间
第一个月:1只
二:1只
三:2只 第一只兔子第一次生崽
四:3只 第一只兔子开始每天生崽
五:5只 第一只兔子生崽,第二只也生第一个崽
.........
我们惊讶的大喊:斐波那契!!!
没错就是这样
所以我们搬出老朋友
统计每个月的兔子个数
int nums(int n)
{
int c = 1;
int a = 1; int b = 1;
while (n > 2)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
printf("%d", nums(n));
}
}
当然方法千种,我更喜欢多题一解,如果有更好的方法评论区留言
创作不易,感谢观看!