Day06 2023/03/04
难度:简单
题目
已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出 “No answer'”不要引号)
- 输入:第一行输入一个数据a,代表接下来共有几组数据,在接下来的(a<l0)、a行里,每行都有1个n和m。(0<m,n<100)
- 输出:输出鸡兔的个数,或者No answer
示例1
输入: 1 35 94
输出:鸡的数量为:23 兔的数量为:12
说明:输入第一个表示测试1组数据,第二个表示总数量,第三个表示总腿数;然后计算输出鸡和兔各自的数量。
- 当m(总腿数)不为偶数或者鸡或者兔的数量小于0的时候输出“no anwser”
思路: 1.因为题目所给样本很小(0<m,n<100),所以直接选择暴力也很快。 2.因为编程的时候会有类型转换,所以尽量用乘法解决问题,尽量不用到除法
```
/*
* n表示坤,兔总数量
* m表示腿数
* */
```
static void kunAndRabbit(int n, int m){
//两个嵌套循环,i表示鸡的数量,j表示兔的数量,若满足i * 2 + j * 4 == m && i + j == n,则直接返回
for (int i = 1;i < n;i++){
for (int j = 1;j < n;j++){
if (i * 2 + j * 4 == m && i + j == n){
System.out.println("鸡的个数:" + i);
System.out.println("兔的个数:" + j);
//若有结果直接返回,结束循环。
return;
}
}
}
System.out.println("No answer");
}
-
时间复杂度 O(n*n)--- 不考虑输入数据所占用的时间,其他为常数级
-
空间复杂度 O(1)--- 仅含常数级的变量,除此无额外的辅助空间