父亲今年40岁,儿子6岁,编程求多少年后父亲的岁数是儿子的2倍。

父亲今年40岁,儿子6岁,编程求多少年后父亲的岁数是儿子的2倍

实现思路后面都是最基础的数学问题
y + n = 2(y + n - 6)
=> n = 12 - y

#include <stdio.h>

int main() {
    int son_age = 6;
    int x = 0;

    while (son_age != 12) {
        son_age++;
        x++;
    }

    printf("输出\n", x);

    return 0;
}


#include <stdio.h>
int main() {
int y = 0;
int baba = 40;
int son = 6;
while (baba != son * 2) {
    baba += 1;
    son += 1;
    y += 1;
}
printf("%d", y);
return 0;
}

以下是用 C 语言编写的实现代码:

#include <stdio.h>

int main() {
    int father_age = 40;   // 父亲的年龄
    int son_age = 6;       // 儿子的年龄
    int year = 0;          // 记录多少年后父亲的岁数是儿子的两倍
    
    while (father_age != 2 * son_age) {
        year++;            // 每循环一次,年数加1
        father_age++;      // 父亲每年增加1岁
        son_age++;         // 儿子每年增加1岁
    }
    
    printf("%d 年后,父亲的岁数是儿子的两倍。\n", year);
    return 0;
}

运行结果:

28 年后,父亲的岁数是儿子的两倍。
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7447269
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:兔子繁殖问题:一对兔子从出生后第三个月开始,每月生一对小兔子。小兔子到第三个月又开始生下一代小兔子。假若兔子只生不死,一月份抱来一对刚出生的小兔子,问一年中每个月各有多少对兔子(C++)(迭代法)
  • 除此之外, 这篇博客: C语言:猴子摘桃中的 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 首先画下设计流程图:
    在这里插入图片描述
    源代码:

    #include<stdio.h>
    void main()
    {
    	int i,s=1;
    	for(i=1;i<10;i++)//因为到第十天还剩一个,所以循环9次
    	{
    		s=(s+1)*2;//倒序求出每天的数量
    	}
    	printf("猴子第一天摘了%d个桃子\n",s);
    }
    

    运行结果:
    在这里插入图片描述

  • 以下回答由chatgpt基于相关博客总结生成:

    根据题目要求,我们需要计算父亲年龄达到儿子年龄两倍的时间,已知父亲今年40岁,儿子6岁。因此,我们可以通过算法2:数学公式法来解决这个问题。

    根据等差数列前n项和的数学求法:

    Sn = \frac{n(a_1+a_n)}{2}
    

    因为这里我们只知道 $a_n$ 以及 公差 $5$,并不知道 $n$ 是多少,为此我们可以变换公式。

    Sn = \frac{(a_n-a_1)^2}{2d}
    

    进一步地,我们需要找到 $a_1$ 和 $n$ 的值。由于我们已知儿子6岁,父亲40岁,在第 $n$ 年时,儿子 $a_n = a_1 + (n-1) \times d = 6 + (n-1) \times 5 = 5n + 1$。

    而父亲的年龄 $40+a_1 = 2(6+n) = 12 + 2n$。结合等差数列前n项和的数学求法,我们有:

    \frac{(5n+1-6)^2}{10} = 12 + 2n - 40
    

    化简后得到:

    n^2 - 15n + 56 = 0
    

    解得 $n=7$ 或 $n=8$,因此可以计算出父亲年龄达到儿子年龄两倍的时间为14年或15年。

    根据以上分析,我们可以用以下代码解决该问题:

    #include <iostream>
    using namespace std;
    
    // 判断是否为闰年的函数
    int isLeapYear(int year){
        if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
            return 1;
        }
        else{
            return 0;
        }
    }
    
    // 计算父亲年龄达到儿子年龄两倍的时间
    int calcFatherAge(){
        int fatherAge = 40;
        int sonAge = 6;
        int n = 1;
        while(fatherAge != sonAge * 2){
            n++;
            fatherAge++;
            if(isLeapYear(2017 + n) == 1){ // 如果是闰年,二月天数为29,否则为28
                sonAge += 2;
            }
            else{
                sonAge++;
            }
        }
        return 2017+n;
    }
    
    int main(){
        int year = calcFatherAge();
        cout << year << "年是父亲年龄达到儿子年龄两倍的年份" << endl;
        return 0;
    }