本文主要是介绍c语言练习75: 速算机器⼈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
速算机器⼈
题⽬描述:
⼩扣在秋⽇市集发现了⼀款速算机器⼈。店家对机器⼈说出两个数字(记作 x 和 y),请⼩扣说出计算 指令:
A 运算:使 x = 2 * x + y;
B 运算:使 y = 2 * y + x。
在本次游戏中,店家说出的数字为 x = 1 和 y = 0,⼩扣说出的计算指令记作仅由⼤写字⺟ A、B 组成的 字符串 s,字符串中字符的顺序表⽰计算顺序,请返回最终 x 与 y 的和为多少。
• ⽰例 1:
输⼊:s = AB
输出:4
解释: 经过⼀次 A 运算后,x = 2, y = 0。
再经过⼀次 B 运算,x = 2, y = 2。 最终 x 与 y 之和为 4。
算法思路:
1. 定义两个变量 x 和 y 并初始化为x=1,y=0;
2. 遍历字符串数组,若当前字符为A,执⾏x=2*x+y,否则执⾏y=2*y+x; 3. 返回 x 和 y 的和。
代码:
int calculate(char* s) {//定义x和y并初始化int x = 1;int y = 0;//遍历字符串数组,字符串数组指针直接指向字符串⾸位,则遍历时直接获取指针指向的字符,while (*s) {//判断当前字符,并执⾏相应操作if (*s = 'a') {x = 2 * x + y;}else if (*s = 'b') {y = 2 * y + x;}//字符串指针后移,完成遍历操作s++;}//返回操作执⾏完成后的两值之和return x + y;
}
这篇关于c语言练习75: 速算机器⼈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!