C语言入门——多个数学问题求解

这篇博客介绍了用C语言解决多个数学问题的方法,包括穷举法求解数字问题、编写求解二次方程的程序、解决车牌号码逻辑谜题、猴子吃桃问题的递推算法,以及创建钻石图案和简单计算器程序的思路。
摘要由CSDN通过智能技术生成

题目:
1. 一只老鼠咬坏了账本,公式中的符号 □ 代表被老鼠咬掉的地方。要想恢复下面的等式,应在□中填上哪个相同的数字?
3□ * 6237 = □3 * 3564
思路:利用穷举法找出该数字。

2.要求编制一个求方程ax2+bx+c=0的根的程序。一次可以求解多个方程的根,采用循环结构,当次循环输入一个方程的系数a、b和c,输出求出的根。求解时考虑四种情况:(1)系数a为0,不是二次方程。(2)方程有两个不同的实根。(3)方程有两个相同的实根。(4)方程有两个虚根。

3.一辆汽车撞人后逃跑。4个目击者提供如下线索:
甲:牌照三、四位相同; 乙:牌号为31XXXX;
丙:牌照五、六位相同; 丁:三~六位是一个整数的平方。
思路:为了从这些线索中求出牌照号码,只要求出后四位再加上310000即可。这四位又是前两位相同,后两位也相同,互相又不相同并且是某个整数的平方的数。可以仍然使用穷举法。由于1000的平方根大于31,循环可从31开始。

4.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天都吃了前一天剩下的一半零一个。到了第10天早上再吃时,就只剩一个桃子了。求第一天共摘多少桃子。
思路:这里可以采用递推算法,设第10天的桃子数是x=1,则第9天的桃子数为(x+1)*2。共递推9次就可以得到第1天猴子所摘的桃子数。

5.打印以下钻石图案,要求任意输入行数(必须为奇数),图案被打印在屏幕的中心。例如行数为7的钻石图案如下:
          *
         ***
        *****
       *******
        *****
         ***
          *
思路:分为两部分,上面4行和下面3行,上面按行数递增,下面部分按行数递减。欲将图案输出在屏幕中心,通过计算可知每一行的左边应该有多少空格。

6.实现一个计算器。实现两个整数简单的加减乘除四则运算(假定除法为整除)。输入数据在文件express.txt中,计算结果写入另一个文件result.txt中,内容如下所示:
express.txt            result.txt
1+2                1+2=3
3-6                 3-6=-3
4*9                 4*9=36
9/2                 9/2=4
思路:打开数据文件express.txt,按顺序依次读入每行表达式中的两个运算量和一个运算符,根据运算符确定执行的是哪一种运算,计算后将结果在屏幕上显示,同时写入结果数据文件result.txt。

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

/*1.FIndNum函数,求出满足以下等式的数字, 
   3 □* 6237 = □3 * 3564 
*/ 
void FindNum()
{
    int i,find = 0;
    for(i=0; i<=9; i++)
    {
        if((30+i)*6237 == (i*10+3)*3564)
        { 
            printf("所求的数字为 %d, 3%d*6237 = %d3*3564\n",i,i,i);
            find = 1;
        } 
    }
    if(!find)
        printf("找不到满足等式的数字。\n"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值