C语言:甲乙丙丁分糖

版权声明:转载请注明出处 https://blog.csdn.net/nanhuaibeian/article/details/88550649

题目

甲、乙、丙、丁四人共有糖若干块,甲先拿出一些糖分给另外三人,使他们三人的糖数加倍;乙拿出一些糖分给另外三人,也使他们三人的糖数加倍;丙、丁也照此办理,此时甲、乙、丙、丁四人各有16块,编程求出四个人开始各有糖多少块。

代码

#include "stdio.h"

void main(){
//	分配结束时,甲乙丙丁分别为:a[0],a[1],a[2],a[3] 
	int a[4] = {16,16,16,16};
	int i,sum,j;
//	将每个人的糖恢复初始,顺序根据题目倒着推,丁,丙,乙,甲 
	for(i=3;i>=0;i--){
		sum =0;
//		当是i时,它的值先不动,其他的值j都减半,并使用sum,记录减半的值 
		for(j=0;j<4;j++){
			if(j!=i){
				a[j] = a[j]/2;
				sum = sum+a[j];
			}
		}
//		将减半的值赋值给i 
		a[i] = a[i] +sum;
	}
	for(i=0;i<4;i++)
		printf("%d ",a[i]);
} 

猜你喜欢

转载自blog.csdn.net/nanhuaibeian/article/details/88550649