C语言程序设计 有一数字字谜abcd-cdc=cdc abcd 均为非负整数,求abcd得值

C语言程序设计 有一数字字谜abcd-cdc=cdc abcd 均为非负整数,求abcd得值,第1张

穷举?设定四个变量abcd,做四层循环去找,abcd各从0-9循环一遍

abcd - cdc 用程序写出来就是

a*1000 + b*100 + c*10 + d - c*100 - d*10 - c

而简蔽 cdc 则是

c*100 + d*10 + c

你要是把这个多元方程写在一起化简一下也斗咐皮是可以空差的

然后打印出所有等式成立的情况就可以了

我想了个简单的思路1.既然是单词是否有相同顺序的字母..分解来看 就是2个字母组合是最小的 所以把s1 和 s2 分解成 两个字母的顺序组合就可以了.2.然后比较分解出来的 2个字母组合数组或者集合 有相同的2个字母组合 就返回true 比察唯如: slient 我把肢冲它分成==>sl li ie en nt listen ==>li is st te en然后遍历比较 只要 里面有一个 是相同的就跳出======================================import java.util.ArrayList

import java.util.List

import java.util.Scanner

public class riddle {public static boolean isAnagram(String s1,String s2){

boolean flag = false

List<String>s1list = new ArrayList<String>()

for (int i = 0i <s1.length()-1i++) {

s1list.add(s1.substring(i, i+2))

}

List<String>s2list = new ArrayList<String>()

for (int j = 0j <s2.length()-1j++) {

s2list.add(s2.substring(j, j+2))

}

for (int i = 0i <s1list.size()i++) {

String temp = s1list.get(i)

for (int j = 0j <s2list.size()j++) {

String temp2 = s2list.get(j)

if (temp.equals(temp2)) {

flag = true

break

}

}

}

return flag

}

public static void main(String[] args) {

Scanner in = new Scanner(System.in)

System.out.println("请输入第1个单词:")

String s1 = in.next()

System.out.println("请输入第2个单词:")

String s2 = in.next()

boolean result = riddle.isAnagram(s1, s2)

if (result) {

System.out.println("这是个谜语")

}else{

System.out.println("不是谜语")

}

}

} ==========================================运行结果==========================================请输入第1个单词:

slient

请输入第2个单词:

listen

这是个谜语

==========================================对于只输入i和li 或者是 i i 这样的 也是会判断为败饥培false我在数组截取那里 做了判断..所以如果是1个字符 是不截取的..所以不会比较不过整体没有优化..应该能优化一下...思路大概就这样

编程讲逻辑小诗题谜语打一个数字是3。

•4、nAmB如果是4A0B猜数字结束。•5、枚举每个可段配行的4位数字如果它作为答案不能让刚刚猜得数字得到nAmB的答案那么这个数字标记成不可握慎指行fal...

所以二位遍孝笑程讲逻辑打一数字是3


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8280392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存