c语言 每个糖果1元,三张糖果纸换一个糖果,问N元最多能买几个糖果

Python015

c语言 每个糖果1元,三张糖果纸换一个糖果,问N元最多能买几个糖果,第1张

一、算法设计:

1、首先N元可以买N个糖果,同时产生N个糖纸

2、然后每三张糖纸可以换一个糖果,同时产生一张新的糖纸;

3、以此循环下去,直到糖纸数不足3张时(不考虑可以借糖果),结束程序。

二、参考代码:

#include <stdio.h>

int main()

{

    int N, tg, tz

    scanf("%d",&N)//输入N值。

    tg=tz=N//初始糖果和糖纸数都是N个。

    while(tz>=3)//糖纸数超过三张,还可以继续换糖果,执行循环。

    {

        int t=tz/3//t用来存储当前糖纸可以换的糖果数。

        tg+=t//累加到糖果总数上。

        tz=tz%3+t//剩余的糖纸数。

    }

    printf("%d元共可买%d个糖果\n", N, tg)//输出结果。

    return 0

}

\b    退格(BS) ,将当前位置移到前一列  

\n    换行(LF) ,将当前位置移到下一行开头

\r    回车(CR) ,将当前位置移到本行开头

\t    水平制表(HT) (跳到下一个TAB位置)  

上面是C中转义字符的含义,这样就比较明白了,f    g经过一个/r,把前面的_ab_c    _的内容给覆盖了,所以第一行输出f      gde(de是前面没有覆盖的完的,前面本来输出_ab_c    _de)。

第二句就没什么好说了吧,/b退格,将i覆盖,注意,/b不会覆盖/n和/t的,这里我自己写了一个实验用例:

#include<stdio.h>

int main()

{

printf("_ab_c\t_def\tg\n")

printf("h\tk\ni\b\bj_k\n")

return 0

}

制表符代表八个空格”的说法不准确。制表符的作用是将光标移到最接近8的倍数的位置,使得后面的输出从此开始。换句话说,如果所有数据都紧跟在制表符后面输出,则这些数据只能从第9列、第17列、第25列......开始。

如果已经到了第1、2、3、...8列,则直接跳到第9列。

如果已经到了第9、10、11、...16列,则直接跳到第17列。

如果已经到了第17、18、19、...24列,则直接跳到第25列。

.............