一个小题目
来源:互联网 发布:java测试工程师笔试题 编辑:程序博客网 时间:2024/05/31 13:14
看到一道题目,自己尝试了一下:编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100.
首先要考虑所有的可能性,每两个数字间有3种可能,一共有3的8次方种可能。这样就能通过遍历实现。
- (void)viewDidLoad { [superviewDidLoad]; //0表示没有符号,1表示+,2表示- for (int i =0; i < pow(3,8); i++) { int newA = i; NSMutableArray *allArray = [NSMutableArrayarray]; for (int j =0; j < 8; j ++) { int remainder = newA%3; [allArrayaddObject:[NSNumbernumberWithInt:remainder]]; newA = newA/3; } [selfdealWithArray:allArray]; } // Do any additional setup after loading the view, typically from a nib.}//array最多有8个元素- (void)dealWithArray:(NSMutableArray *)array{ //构建两个数组,一个是数字的数组,一个是符号的数组,数字数组必然多一个元素 NSMutableArray *numberArr = [NSMutableArrayarray]; NSMutableArray *symbolArr = [NSMutableArrayarray]; int a =1;//存储每个连续的数值 for (int i =0; i < array.count; i++) { switch ([array[i] intValue]) { case 0: { a = a*10+i+2; } break; case 1://+ { [numberArraddObject:[NSNumbernumberWithInt:a]]; a=i+2; [symbolArraddObject:@"+"]; } break; case 2://- { [numberArraddObject:[NSNumbernumberWithInt:a]]; a=i+2; [symbolArraddObject:@"-"]; } break; default: break; } } [numberArraddObject:[NSNumbernumberWithInt:a]];// NSLog(@"数字数组为:%@",numberArr);// NSLog(@"运算符数组为:%@",symbolArr); //进行最终的计算 int sum = [numberArr[0]intValue]; for (int k =0; k < symbolArr.count; k++) { NSString *symbol = symbolArr[k]; if ([symbol isEqualToString:@"-"]) { sum = sum-[numberArr[k+1]intValue]; } else { sum = sum+[numberArr[k+1]intValue]; } } //NSLog(@"最终结果为%d",sum); if (sum==100) { NSMutableString *mutableStr = [NSMutableStringstring]; for (int i =0; i < symbolArr.count; i++) { [mutableStrappendFormat:@"%@",numberArr[i]]; [mutableStrappendFormat:@"%@",symbolArr[i]]; } [mutableStrappendFormat:@"%@",[numberArrlastObject]]; NSLog(@"对应的运算方法为:%@",mutableStr); }}
习惯了objective-c的语法,反而对c不熟悉了。以后慢慢补充。
0 0
- 一个小题目
- 一个小题目分析
- 一个小题目分析
- 一个小程序题目
- 一个小题目
- 分享一个小题目
- 一个小的面试题目
- 【java】一个经典小题目
- acm上的一个小题目
- 一个C++小题目引出的问题
- 每天一个小题目——股神
- 每天一个小题目——路灯
- 每天一个小题目——约会
- 每天一个小题目——上台阶
- 每天一个小题目——小明的棋盘
- 每天一个小题目——小赛打车
- 小题目
- 小题目
- Nim 博弈
- 【转】我的华为面试经历——技术服务
- 高精度减法,高精度乘法
- HDU 1286 找新朋友【欧拉函数 最基础应用】
- POJ 2992 Divisors(约数定理)
- 一个小题目
- android gif 动画播放
- mac 常用 终端命令
- http的状态响应码
- 链式A+B
- windows应用程序双机调试方法
- exlipce mar 创建一个rest风格的webService项目(axis2)
- 腾讯龙界启示录 v2.1.0 安卓版
- Qt QTreeWidget 树形结构实现