搬砖问题(C语言编程)

作者&投稿:独翔 (若有异议请与网页底部的电邮联系)
C语言编程(搬砖问题)~

算法:4x+3y+z=36x+y+z=36x,y,z属于小于36的正整数由于36个人搬,所以x不会大于9,y不会大于12,z不会大于36所以直到测试完三个条件才算考虑完毕所有情况为了简化思路,将三个条件分开首先固定x,如果x不大于9则开始循环 固定y不断计算z的值,若y值大于13则将x值增加并继续循环 若z大于36则将y值增加并且继续循环,每测试完一组值就记录在一个结构体里面每记录完一个结构体就自增计数器并且将结构体放到最后计算完毕之后返回结构体代码:#include typedef struct cdt{ int x,y,z,*num; struct cdt next;}*adt;adt fun(adt link){ adt lk=link; int x,y,z; for(x=1;x!=10;++x){ for(y=1;y!=13;++y){ for(z=1;z!=37;++z){ if((36-4x-3y)>=1){ if((z==(36-4x-3y))&&(z==(36-x-y))){ lk->next =(adt)malloc(sizeof(struct cdt)); lk->x=x,lk->y=y,lk->z=z,*(lk->num)++; lk=lk->next; } } } } } lk->next=null; return link;}int main(void){ adt link=(adt)malloc(sizeof(stuct cdt)); link->num=(int *)malloc(sizeof(int)); *link->num=0; link->next=null; link=fun(link); //自己出来结果。}

你好!
合乎要求的只有 4 次吧

最低的循环次数应该是:15 * 22 * (45/2)

//穷举法,列举出每一种组合,从中找出符合条件的。
#include<stdio.h>
void main()
{
int men,women,kids,people,bricks;
for(men=0;men<10;men++)
for(women=0;women<13;women++)
for(kids=0;kids<37;kids=kids+2)
{
people=men+women+kids;
bricks=4*men+3*women+1*(kid/2);
if(people==36&&bricks==36)
printf("it needs %d men ,%d women and %d kids\r\n",men,women,kids);
}
}

3男3女30个小孩


爱因斯坦阶梯问题 C语言怎么编程
刚才正好看到这个,忽然觉得题设有个小问题,没规定阶梯的最大值。那就 把a当成阶梯总数吧,我只是修改了a的范围。答案还有很多

c语言进修问题【牛人入】
条件改成while(scanf("%d%d",&a,&b)!=EOF){ 。。。}即可。在需要结束的时候按ctrl+z,然后回车即可退出 我这种方式不正是ACM标准给出的吗?

经典C语言问题
Answe:因为解决这个问题的思路是穷举,就是把在一定范围内的所有可能都取到,直到得到符合条件的值。这个程序,有2个循环,第一个循环while(a<=36),的意思是在a的值确定的情况下,穷举b;比如(假设b=0语句没有在循环体中)a=0时,b先为0,不满足if();到了b=36,不满足while(b<=36),还是...

c语言编程中的小问题
1、可以的。a = (int)(a * 100 + 0.5); \/\/ 将第三位小数加上去,通过强制类型转换,则会丢弃小数部分a = a \/ 100; \/\/ 由于a是double类型,故商包含2位小数a = (int)(a * 100 + 0.5)\/100.0; \/\/ 这样合并会得到相同的结果。2、可以这样操作。a = (int)(a * 100)\/100.0...

关于c语言编程问题
如果这不是楼主故意挖的一个坑的话,嘻嘻,我是这样理解的:这个表达式的【运算关系】和a的值没有直接关系,这里主要需要了解的是运算符号的优先级。首先执行( a = 4 ) * ( a = 3 ),括号优先级最高("()"),其次是乘号("*"),最后是等号("="),很明显,a的值先是5.2,然后是4,...

c语言编程(中国古典算术问题)
include<stdio.h> int main() {int i,j; for(i=0;i<=15;i++) { for(j=0;j<45-i;j++) if(3*i+2*j+(45-i-j)\/2==45) printf("%d %d %d",i,j,45-i-j); printf("\\n"); } }

C语言编程中的问题
二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。 三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,...

c语言程序代码大全(c语言程序编程代码大全)
c语言程序代码 C语言源代码,就是依据C语言规则所写出的程序代码,常见的存储文件扩展名为.c文件和.h文件,分别对应C源文件(sourcefile)和C头文件(headerfile)。 C语言是一门编程语言,简单点说,就是由人类书写按照一定规范书写的字符,通过一定手段(编译链接)转换后,可以让电脑或者其它电子芯片"读懂",并按照其要求工...

c语言编程问题?
include <stdio.h> int main(){ int n,i;while(scanf("%d",&n)==1){ for(i=n>999?n+1:1000;i<10000;++i){ if((i%100)*(i%100)+(i\/100)*(i\/100)==i){ printf("%d\\n",i);break;} } if(i>9999){ printf("-1\\n");} } return 0;} ...

关于相邻数的问题,求c语言大神帮忙编程啊!!!
include <stdio.h>#include <string.h>long long max(long long a, long long b){ return a > b?a:b;}int main()\/\/原题,数据范围最大支持2^63 - 1 -> -2^63{ long long maxn = 0, sum = 0, maxi = 1LL<<63, a; int n; scanf("%d",&n); while(...

长白朝鲜族自治县13863262046: C语言编程(搬砖问题) -
蓟炕复方: 算法:4x+3y+z=36x+y+z=36x,y,z属于小于36的正整数由于36个人搬,所以x不会大于9,y不会大于12,z不会大于36所以直到测试完三个条件才算考虑完毕所有情况为了简化思路,将三个条件分开首先固定x,如果x不大于9则开始循环 固定y不断计算...

长白朝鲜族自治县13863262046: 编程搬砖问题 -
蓟炕复方: Option Explicit'36块砖,36个人,男的搬4块,女的搬3块,2个小儿抬1块,要求1次'抬完,问男女小儿各多少人 Private Sub Form_Load() Show Dim M, W, C As Integer For M = 0 To 36 For W = 0 To 36 For C = 0 To 36 If M * 4 + W * 3 + C / 2 = 36 And M + W + C = 36 Then Print M, W, C '没有结果? End If Next C Next W Next M End Sub

长白朝鲜族自治县13863262046: 用水仙花的方法进行C语言编程
蓟炕复方: #include <stdio.h> #define N 36 void main() { int a,b,c; /*分别为男 、女 、小孩 人数 */ int i,j,k; for(i=1;i<9;i++) for(j=1;j<12;j++) for(k=1;k<36;k++) { a=i; /*利用循环分配人数*/ b=j; c=2*k; if((a+b+c==N)&&(a*4+b*3+c/2)==N) /*判断条件并输出结果*/ printf("\n Nan : %d ;Nv : %d ;Xiao hai : %d \n",a,b,c); } } 下面是运行结果

长白朝鲜族自治县13863262046: 一道c语言编程题(搬山游戏) -
蓟炕复方: #include<stdio.h> int n,k; int cnt; //剩余山的数目.int tag; //输赢状态标记.int cplayer=0,ccomputer=0;//各自输赢局数.void player(); void computer(); int main(){ printf("/**********欢迎进入搬山游戏**********/\n"); printf("游戏开始\n"); do{ ...

长白朝鲜族自治县13863262046: 蟑螂走地砖问题(来看看吧,C语言编程题求代码,谢啦)
蓟炕复方: #include"stdio.h" #include"stdlib.h" #include"time.h" #define N 3 #define M 3 int a[N][M]={0}; int check(int* p); int main() { int n,m; printf("com\n"); srand((unsigned)time(NULL)); n=(int)rand()%N; m=(int)rand()%M; a[n][m]=1; move(n,m); for...

长白朝鲜族自治县13863262046: 急!!!c语言编程 百钱买百鸡问题等~ -
蓟炕复方: 第一题: int x,y,z;//对应买的公母小鸡 x+y+z=100; 5x+3y+z/3=100; 14x+8y=200;//上面2个得出这个 7x+4y=100;//化简到这个 for(x=1;x<100;x++) { y=(100-7x)/4; if((100-7x)%4==0&&(100-x-y)%3==0) { print(x,y,z);//忘记C语言是不是这样输出了;...

长白朝鲜族自治县13863262046: c语言程序纠错 -
蓟炕复方: #include int deletElement(int a[],int n,int x){ int i,j=0; for(i=0;i<n;i++) { if (a[i]!=x ) a[j++]=a[i]; } return j ;}void main(){ int a[]={1,3,5,7,9,2,5,6,5}; int n=9...

长白朝鲜族自治县13863262046: 整币兑零问题C语言编程 -
蓟炕复方: 1 #include <stdio.h> 2 void main() 3 {int x,f,t,n; 4 x=0; 5 for(t=0;t<=50;t++) /* 变量t为2元币的张数*/ 6 for(f=0;f<=20;f++) /* 变量f为5元币的张数*/ 7 {n=100-f*5-t*2; /* 变量n为1元币的张数*/ 8 if(n>=0) x++;} /* 变量n为非负时,用x统计兑零种数 */ 9 printf("%d",x); 10 }

长白朝鲜族自治县13863262046: C语言编程实现:N个人排队打水问题,具体如下:
蓟炕复方: #include "stdio.h" int times(int b[],int n) { int i=0; int sum=0; for(i=0;i<=n;i++) { sum+=b[i]; } return sum; } main() { int i,j,t; int sum_times=0, sum_person; int a[1001];printf("please input persons numbers :"); scanf("%d",&sum_person); for(i=0;i...

长白朝鲜族自治县13863262046: C语言编程 :编一个程序,输入一个数给出平方 -
蓟炕复方: #include<stdio.h> #include<iostream> main(){int n;scanf("%d",&n);printf("%d\n",n*n);system("pause"); return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网