利用公式x1 = (-b + sqrt(b* b-4* a* c))/(2* a), x2 = (-b - sqrt(b* b-4* a* c))/(2* a)求一元二次方程ax^2 + bx + c =0的根,其中a不等于0。
第一行是待解方程的数目n。
其余n行每行含三个浮点数a, b, c(它们之间用空格隔开),分别表示方程ax^2 + bx + c =0的系数。
输出共有n行,每行是一个方程的根:
若是两个实根,则输出:x1=...;x2 = ...
若两个实根相等,则输出:x1=x2=...
若是两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i
所有实数部分要求精确到小数点后5位,数字、符号之间没有空格。
x1和x2的顺序:x1的实部>Re的实部||(x1的实部==x2的实部&&x1的虚部>=x2的虚部)
- 3
- 1.0 3.0 1.0
- 2.0 -4.0 2.0
- 1.0 2.0 8.0
在这里给出相应的输出。例如:
- x1=-0.38197;x2=-2.61803
- x1=x2=1.00000
- x1=-1.00000+2.64575i;x2=-1.00000-2.64575i
- import scala.io.StdIn
- import math.sqrt
- object Main {
- def main(args: Array[String]): Unit = {
- var n = StdIn.readInt();
- for (i <- 1 to n) {
- var l = StdIn.readLine();
- var s = l.split(" ");
- var a = s(0).toDouble;
- var b = s(1).toDouble;
- var c = s(2).toDouble;
- // println(a+" "+b+" "+c);
- var part1 : Double = (0 - b) / (2 * a);
- // println(part1);
- var pd = b * b - 4 * a * c;
- if (pd > 0) {
- var part2 : Double = sqrt(pd) / (2 * a);
- printf("x1=%.5f;x2=%.5f\n" ,part1+part2 ,part1-part2);
- }
- else if(pd == 0) {
- printf("x1=x2=%.5f\n",part1);
- }
- else {
- var part2 : Double = sqrt(-pd) / (2 * a);
- printf("x1=%.5f+%.5fi;x2=%.5f%.5fi\n",part1,part2,part1,-part2);
- }
- }
- }
- }
小明 正在学习建模。她对带有活动部件的模型很感兴趣。作为她的第一个任务,她制作了一个大小2×n的矩形盒子,其中包含两个平行的导轨和每个导轨上的矩形条。短条的尺寸1×a,长条的尺寸 1×b. 长杆的两端各有一个塞子,而短的总是在这两个塞子之间。
只要短杆位于挡块之间,杆就可以沿着导轨移动,一次一根杆。所以,小明在每个矩形条移动选择其中一个条并移动它,而另一个保持在原位。最初,两个条都与盒子的一侧对齐,小明希望它们以尽可能少的移动到另一侧对齐。为了实现目标,他最少需要移动多少次?
输入在一行中给出3个整数a、b和c(1<=a<b<=n<=10^7),其间以空格分隔。
对每一组输入,在一行中输出小明最少需要移动的次数。
- 1 3 6
- 2 4 9
- 5
- 7
- import scala.io.StdIn
- object Main{
- def main(args: Array[String]): Unit={
- while(true){
- var l = StdIn.readLine();
- var s = l.split(" ");
- var a = s(0).toInt;
- var b = s(1).toInt;
- var c = s(2).toInt;
- var ans : Int = 0;
- var x : Int = a;
- var y : Int = b;
- var z : Int = b - a;
- while(x < c || y < c) {
- if (x < c) {
- x += z;
- ans += 1;
- }
- if (y < c) {
- y += z;
- ans += 1;
- }
- }
- println(ans)
- }
- }
- }
本题目要求读入1个整数n,然后输出1~n之间所有整数的和。
输入在一行中给出1个绝对值不超过10000的整数n。
对每一组输入,在一行中输出1~n之间所有整数的和。
- -3
- 3
- import scala.io.StdIn
-
-
- object Main {
- def main(args: Array[String]): Unit = {
- while(true){
- var n : Int = StdIn.readInt()
- var s : Int = 0
- if(n < 1){
- for(i<- Range(n,2)) s += i
- println(s)
- }
-
- else {
- for (i <- 1 to n) s += i
- println(s)
- }
- }
- }
- }
- import scala.io.StdIn
-
- object Main {
-
- def main(args:Array[String]):Unit={
-
- while(true) {
- var sum : Int = 0
- var x = StdIn.readInt()
- if (x >= 0)
- sum = (x + 1) * x / 2
- else if(x < 0) {
- x = -x
- sum = -((x + 1) * x / 2) + 1
- }
- println(sum)
- }
- }
-
- }
输入一个奇数n,输出一个由‘*’构成的n阶空心菱形。
一个奇数n。
输出一个由‘*’构成的n阶实心菱形。
具体格式参照输出样例。
5
- *
- * *
- * *
- * *
- *
- import scala.io.StdIn
- object Main{
- def main(args: Array[String]): Unit = {
- //打印空心菱形: 空心正三角形+空心倒三角形 = 空心菱形
- var n : Int = StdIn.readInt()
- //空心正三角形
- // 6 ==12
- // 5 7 ==12
- // 4 8 ==12
- // 3 9 ==12
- // 2 10 ==12
- //1 11==12
- // 2 10 ==12
- // 3 9 ==12
- // 4 8 ==12
- // 5 7 ==12
- // 6 ==12
- //每一个数字代表每个*号在所在行的列号
- //由于菱形是对称的,所以先考虑上半部分
- //通过观察上半部分为6行11列
- //左半部分第1行为6、第2行为5、..............、第6行为1;由此可知外循环应使用for(i <- 6 to (1,-1))
- //用i代表行号,j代表列号;当i=j或者j=12-i时该位置的应输出*号,其他位置输出空格。
- for (i <- n / 2 + 1 to (1 ,-1)) {
- for (j <- 1 to n) {
- if (i == j || j == n + 1 -i) {
- print("*")
- }
- else {
- print(" ")
- }
- }
- println()
- }
- //倒三角形
- for (i <- 2 to n / 2 + 1) {
- for (j <- 1 to n) {
- if (i == j || j == n + 1 -i) {
- print("*")
- }
- else print(" ")
- }
- println()
- }
- }
- }
- import scala.io.StdIn
-
- object Main{
- def main(args: Array[String]): Unit = {
- var n = StdIn.readInt()
- var a = n / 2
-
- //棱形的上半部分
- for (i <- 1 to n / 2 + 1) {
-
- //输出*号前面的空行
- for (j <- 1 to a) print(" ")
-
- //输出星号
- for (j <- 1 to 2 * i - 1) {
- if (j == 1 || j == 2 * i - 1) print("*")
- else print(" ")
- }
-
- //输出*号后面的空行
- for (j <- 1 to a) print(" ")
- println()
- a -= 1
- }
-
- //菱形的下半部分
- a = 1
- for (i <- n / 2 to (1, -1)) {
-
- //输出*号前面的空行
- for (j <- 1 to a) print(" ")
-
- //输出星号
- for (j <- 1 to 2 * i - 1) {
- if (j == 1 || j == 2 * i - 1) print("*")
- else print(" ")
- }
-
- //输出*号后面的空行
- for (j <- 1 to a) print(" ")
- println()
- a += 1
- }
- }
- }
给你一个整数n,求出它的斐波那契数是多少?
在一行中给出1个不超过30的正整数n。
在一行中输出斐波那契数的值。
5
1 1 2 3 5
- import scala.io.StdIn
-
- object Main {
- def main(args: Array[String]): Unit = {
- var n = StdIn.readInt()
- def f(x: Int):Int= {
- if (x == 1) 1
- else if (x == 2) 1
- else f(x - 1) + f(x - 2)
- }
- var flag : Int = 0
- for (i <- 1 to n) {
- print(f(i) + " ")
- }
- }
- }
- import scala.io.StdIn;
- import scala.collection.mutable.ArrayBuffer //ArrayBuffer包使数组可变
- object Main { //类
- def main(args: Array[String]): Unit = { //main方法
- var n = StdIn.readInt();
- def dg(n: Int): Array[Int] = { //类型为Int
- def func(n: Int): Int = { //定义方法
- if (n<=2) 1;
- else func(n - 1) + func(n - 2); //特征<=2,输出均为1,>2为(n-1)+(n-2)
- }
- // println(func(1)) //检查特例值数据
- val array = new ArrayBuffer[Int]; //new一个对象
- for (i <- 1 to n) { //确定i的取值范围
- array.append(func(i)); //往buffer里添加func产生的数据
- }
- array.toArray; //toArray
- }
- dg(n).foreach(x => print(s"$x ")); //遍历输出
- }
- }
有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后再多吃一个。当到第n天时,想再吃时(还没吃),发现只有1个桃子了。问题:最初共多少个桃子?
在一行中给出1个不超过30的正整数n。
在一行中输出最初的桃子个数。
10
桃子=1534
- import scala.io.StdIn
- object Main {
- def main(args: Array[String]): Unit = {
- var n = StdIn.readInt();
- val num = f(1,1,n);
- print("桃子="+num);
- }
- def f(a : Int ,d : Int ,n : Int): Int = {
- var ans = (a + 1) * 2;
- var dcnt = d + 1;
- if(dcnt == n) return ans;
- else f(ans ,dcnt ,n);
- }
- }
- import scala.io.StdIn
- object Main {
- def main(args: Array[String]): Unit = {
- var n = StdIn.readInt()
- var sum : Int = 1
- for (i <- 1 to n - 1) {
- sum = (sum + 1) * 2
- }
- println("桃子=" + sum)
- }
- }