当前位置:首页 » 编程软件 » 编程题计算

编程题计算

发布时间: 2025-01-14 16:06:13

‘壹’ 编程题:一只大鸡3元,三只小鸡1元,如何用100块钱买100只鸡

简单啊。。。
大鸡为x, 小鸡数为3y(说明:这里小鸡的数量一定是3的倍数,因为100元买100只鸡,鸡不可能买小数只。。。所以大鸡的价钱不可能产生小数。在这样的情况下小鸡的价钱也不会产生小数100-3x,这样的话,必须是3的倍数才可以保证)
列出方程得到:
x+3y=100
3x+1*(3y/3)=100 =>3x+y=100;
解之,得到:
x=100-3y
3(100-3y)+y=100
300-8y=100
8y=200 , y=25
x = 25
so, 大鸡25只,小鸡75只

编程可以用计算法,如上方程。
也可以用穷举法:
python
>>> filter(lambda i: i[0]*3+i[1]/3==100 and i[0]+i[1]==100, [[x,y] for x in range(0, 101) for y in range(0, 101)])
[[25, 75]]

so, 大鸡25只,小鸡75只。

可以。。。请稍等。。。

C#版:
using System;

namespace ConsoleApplication1 {
class Program {
static void Main(string[] args) {
for (int i = 0; i <= 100; i++) {
for (int j = 0; j <= 100; j++) {
//i-大鸡 j小鸡
if (i * 3 + j / 3 == 100 & i + j == 100) {
Console.WriteLine("大鸡{0}只,小鸡{1}只", i, j);
}
}
}
Console.ReadKey();
}
}
}

c版:

#include <stdio.h>
int main()
{
int i, j;
for(i=0; i<=100; i++)
for (j=0; j<=100; j++)
if (i+j==100 && 3*i+j/3==100)
printf("大鸡%d只, 小鸡%d只\n", i, j);
return 0;
}

结果都是一样的:大鸡25只,小鸡75只

优化:
反正大小鸡共100只,可以直接根据大鸡数量计算小鸡,这样去掉一层循环:从循环1万次减到100次。

#include <stdio.h>

int main()
{
int i;
for(i=0; i<=100; i++){
int j = 100 - i;
if (3*i+j/3==100)
printf("大鸡%d只, 小鸡%d只\n", i, j);
}
return 0;
}

继续优化:
小鸡的数量一定是3的整数倍,所以可以用小鸡数量来循环,可以使循环数量再减少:

#include <stdio.h>

int main()
{
int j; //小鸡的数量一定是3的整数倍
for(j=0; 3*j<=100; j++){
int i = 100 - 3*j;
if (3*i+j==100)
printf("大鸡%d只, 小鸡%d只\n", i, 3*j);
}
return 0;
}

‘贰’ c语言编程问题:使用函数计算两点间的距离。

输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。

输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。

#include&lt;stdio.h&gt;

#include&lt;math.h&gt;

void main()

{

float x1,x2,y1,y2;

printf("请输入一组数据:");

while(~scanf("%f%f%f%f",&x1,&y1,&x2,&y2))//开始读取输入的数,知道文件结束。

{

printf("两点间的距离为:%.2f ",sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));

printf("请输入一组数据:");

}

}

(2)编程题计算扩展阅读:

c语言基本运算

一:算术运算符

算术运算符非常地简单,就是小学数学里面的一些加减乘除操作。不过呢,还是有一些语法细节需要注意的。

一、加法运算符+

int a=10;

(此处空一行)

int b=a+5;

在第3行利用加法运算符+进行了加法运算,再将和赋值给了变量b,最终变量b的值是15

二、减法运算符或负值运算符-

int b=10-5;

(此处空一行)

int a=-10;

1、在第1行利用减法运算符-进行了减法运算,再将差赋值给了变量b,最终变量b的值是5

2、在第3行中,这个-并不是什么减法运算符,而算是一个负值运算符,-10代表的是负十

三、乘法运算符*

int b=10*5;

注意:乘法运算符并不是x或者X,而是星号*。变量b最终的值是50。

四、除法运算符/

double a=10.0/4;

double b=10/4;

(此处空一行)

printf("a=%f,b=%f ",a,b);

注意:除法运算符并不是÷,而是一个正斜杠/

热点内容
数据库ip连接 发布:2025-01-15 02:48:05 浏览:372
映客怎么安卓直播间 发布:2025-01-15 02:47:28 浏览:337
c语言按位取反运算 发布:2025-01-15 01:51:12 浏览:25
如何找回王者的二级密码 发布:2025-01-15 01:50:11 浏览:775
java学习要什么基础 发布:2025-01-15 01:49:41 浏览:748
加油卡密码错误多少次被锁 发布:2025-01-15 01:49:40 浏览:869
输入的域名无法访问 发布:2025-01-15 01:30:41 浏览:660
我的世界网易粘土服务器next比赛 发布:2025-01-15 00:45:39 浏览:14
c语言动态与结构体 发布:2025-01-15 00:19:16 浏览:62
phpmysql论坛 发布:2025-01-15 00:19:12 浏览:880