编程入门
1. 变量:储存数据,数据处理。
2. 运算。
1. 算术(+ - * / %)
2. 关系(> <== !=>= <=)
3. 逻辑(&& || !)
4. 赋值(= += -=)
3. 选择结构
1. if
2. if else
3. if elseif elseif else
4. 循环结构
1. while
2. for
3. do... while
4. break
5. 需要能解决的问题
(1). s = 1 - 1/2 + 1/3 - 1/4 + 1/5... +1/19 的值
代码如下:
object basic14 {
def main(args: Array[String]): Unit = {
var sum:Double=0
var i=0.0
for (i<-1 to 19){
if(i%2==1){
sum+=1.0/i
}else{
sum-=1.0/i
}
}
println(s"sum=${sum}")
}
}
(2). 从键盘上输入一个数,判断它是不是素数?
代码如下:
object Main {
def main(args: Array[String]) = {
/*
* 判断一个数num是不是素数
*/
var num = scala.io.StdIn.readInt()
var isPrime: Boolean = true // 假设是素数
// 从 2 到 num-1,依次去除num,如果有一个能整除,就说明它不是素数
var i = 2
while (i < num - 1) {
// 如果能整除:num % i == 0,则num不是素数
if (num % i == 0) {
isPrime = false // 不是素数
}
i += 1
}
if (isPrime) {
println(s"$num 是素数")
} else {
println(s"$num 不是素数")
}
}
}
(3). 小球从 100 米高处自由落下,着地后又弹回高度的一半再次落下,如此重复。问经过多少次落地后,小球弹起的高度才会低于 0.5 米?
代码如下:
object Main {
def main(args: Array[String]) = {
var i=0
var high=100.0
while(high>=0.5){
high=high /2
i+=1
println(s"--经过${i}次落地之后,小球的高度是${high}")
}
println(s"--经过${i}次落地之后,小球的高度是${high},小于0.5米的--")
}
}
(4). 复利公式。题目描述:假设某人的年计划是将 1 元钱投入到公司,据已知一年结束时 1 元,计算过程是:1*(1+10%) = 1.1 元,第二年结束时 1.331 元,计算过程是:1.1*(1+10%) = 1.331 元,第三年结束时 1.21 元,计算过程是:1.1*(1+10%) = 1.21 元,第三年结束时 1.331 元,计算过程是:1.21*(1+10%) = 1.331 元。编程顺序:1、求它第 10 年结束时有多少元?2、多少年之后钱超过 1000 元?
代码如下:
object Main {
def main(args: Array[String]) = {
var i=0
var money=1.0
while(money<=1000){
// 每一年的钱都在后一年的基础上增加10%=====乘以1.1
money=money*1.1
i+=1
}
println(s"$i 年之后,总金额超过1000元")
}
}
object Main { def main(args: Array[String]) = {
var i=0
var money=1.0
while(i<10){
// 每一年的钱都在后一年的基础上增加10%=====乘以1.1
money=money*1.1
i+=1
println(s"$i 年之后,有$money 元")
}
println(s"10年之后,总的钱变成了:$money")
}
}
(5). 输入一个正整数,你输出 斐波那契数列的前n项。
代码如下:
//2. 输入一个正整数你,输出 斐波那契数列的前n项。
print("请输入一个正整数n(大于等于3):")
val n=scala.io.StdIn.readInt()
var a=1
var b=1
println(s"第${1}项是:1")
println(s"第${2}项是:1")
for(i<-3 to n){
val c=a+b
println(s"第${i}项是:${c}")
a=b
b=c
}
(6). 乘法口诀
代码如下:
object basic22 {
def main(args: Array[String]): Unit = {
for (i<-1 to 9){
for (j<-1 to i) {
// println(s"${j}*${i}=${i*j}")
printf("%d*%d=%-3d",j,i,i*j)
// %d 表示一个占位符,表示会以一个整数的格式输出对应的值。
// %-3d 表示一个占位符,表示会以整数的格式输出对应的值,这是数字站三个字符的宽度,左对齐。
}
println()
}
}
}
/**
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/
(7). 求解百鸡百钱问题
代码如下:
object basic21 {
def main(args: Array[String]): Unit = {
for (x<-0 to 20){
for (y<-0 to 33){
var z=100-x-y
// 小鸡的数量一定是3的倍数
if(z%3==0 && 5*x+3*y+z/3==100){
println(x,y,z)
}
}
}
}
}