源blog地址http://onlywish.me
用天平称重量
有1,3,9,27,81的砝码
输入一个121以内的数。求出称重方法:
如:输入10 显示 9+1;
输入 7 显示 9-3+1;
下面是答案(自己写的,非标准):
#include <stdio.h> #include <math.h> int sum = 0; int array[5] = {1,3,9,27,81}; int count[5] = {1,4,13,40,121}; char jo[2][2] = { {‘+’,’-’}, {‘-’,’+’} }; void digui(int,int); void main() { int num; //scanf("%d",&num); for(int i = 1 ; i < 122 ; i++) { printf("%d = ",i); digui(i,0); } } void digui(int num,int j) { for(int i = 0 ; i<5 ; i++) if(num <= count[i]) break; //定位 if(num > array[i]) { printf("%d%c",array[i],jo[j][0]); if(j == 1) j = (j+1)%2; digui(fabs(num-array[i]),j); } if(num < array[i]) { printf("%d%c",array[i],jo[j][1]); if(j ==0) j = (j+1)%2; digui(fabs(num-array[i]),j); } if(num == array[i]) { printf("%d\n",array[i]); return; }
时间: 2024-10-03 21:54:14