东华大学2020计算机复试OJ题目

问题描述 :

有一个养鸭专业户,赶了一大群鸭子出去卖。他每经过一个村庄,卖出当时所有赶的鸭子的一半再多一只(他没有劈开过鸭子...),这样他经过七个村庄后,还剩下两只鸭子,那么请算一下他经过第N个村庄时卖出多少只鸭子,还有多少只鸭子。

输入说明 :

你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组一行,每行数据包含一个整数N,1≤N≤7。两组数据之间没有多余的空行。在行首和行尾没有多余的空格。

输出说明 :

对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的终端)依次输出一组对应的答案。每组输出数据由一行组成,该行中包含两个整数,第一个代表在第N个村庄卖出了多少鸭子,第二个代表还剩下多少鸭子。两组数据之间也没有多余的空行。在行首和行尾没有多余的空格。

输入范例 :

3
7

输出范例 :

64 62
4 2

#include 
int yazi(int m) {
    if(m==7)
        return 2;
    else
        return (yazi(m+1)+1)*2;
}
int main() {
    int n,mai,sheng;
    while(scanf("%d",&n) != EOF) {
        sheng = yazi(n);
        mai = (yazi(n)+1)*2-sheng;
        printf("%d %d\n",mai,sheng);
    }    
    return 0;
}

 

你可能感兴趣的:(东华复试,考研)