蓝桥杯有奖猜谜
这道题不难,具体内容主要介绍toCharArray();这个方法,如何用,什么时候用
Question:
小明很喜欢猜谜语。
最近,他被邀请参加了X星球的猜谜活动。
每位选手开始的时候都被发给777个电子币。
规则是:猜对了,手里的电子币数目翻倍,
猜错了,扣除555个电子币, 扣完为止。
小明一共猜了15条谜语。
战果为:vxvxvxvxvxvxvvx
其中v表示猜对了,x表示猜错了。
请你计算一下,小明最后手里的电子币数目是多少。
请填写表示最后电子币数目的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
Answer:
多写几个方法,归根结底,方法思路都是一样,写下来就是为了多变化一下思维
方法1:
1 class Day1 { 2 public static void main(String[] args) { 3 int count = 777; 4 String s = "vxvxvxvxvxvxvvx"; 5 char[] c = s.toCharArray(); 6 7 for (int i = 0; i < c.length; i++) { 8 if (c[i] == 'v') { 9 count *= 2; 10 } else if (c[i] == 'x') { 11 count -= 555; 12 } 13 } 14 System.out.println(count); 15 } 16 }
toCharArray()的方法:将字符串转换为字符数组
当要比较的内容偏多的时候,可以用采用toCharArray()方法将字符串里边的内容直接转换为字符数组;少来少去的,就直接按方法二来进行
方法2:
1 class Day1{ 2 public static void main(String[] args){ 3 int count = 777; 4 String[] s = {"v","x","v","x","v","x","v","x","v","x","v","x","v","v","x"}; 5 for(int i = 0;i<s.length;i++){ 6 if(s[i]=="v"){ 7 count = count * 2; 8 }else{ 9 count = count - 555; 10 } 11 } 12 System.out.println(count); 13 } 14 }
适用于比较内容较少的,直接用字符串,简单快捷
方法3:
直接采用for循环来计算,但是相对来说比较麻烦
总结:
1:尽量让思维灵活,不要在一棵树上不下来,换个不同的角度来看问题
2:一个解决方案,尽量选最优的,不要求完美,但是尽量追求完美
如有个别回答错误,评论指出,我必更改,谢谢!😝