**1.题目:求1+2!+3!+...+20!的和** **2.程序分析:此程序只是把累加变成了累乘。 ** **3.程序源代码:** ```go package main import "fmt" func main() { var a, b = 1, 0 for i := 1; i < 21; i++ { a = a * i b = b + a fmt.Printf("第%d个值是:%d\n", i, b) } fmt.Pri...
-
golang99道练习题之25
-
golang99道练习题之24
**1.题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。** **2.程序分析:请抓住分子与分母的变化规律。 ** **3.程序源代码:** ```go package main import "fmt" func main() { var a, b, c = 2.0, 1.0, 0.0 for n := 1; n < 21; n++ { c = c + a/b t := a a = a + ...
-
golang99道练习题之21
**1.题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。** **2.程序分析:采取逆向思维的方法,从后往前推断。** **3.程序源代码:** ```go package main import "fmt" func main() { var x, y int y = 1...
-
golang99道练习题之22
**1.题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。** **2.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。** **3.程序源代码: ** ```go package main import "fmt" func main() { for...
-
golang99道练习题之20
**1.题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?** **2.程序源代码:** ```go package main import "fmt" func main() { sn := 100 hn := sn / 2 for i := 2; i <= 10; i++ { sn += 2 * hn hn /= 2 } fmt.Printf("共经过%d...
-
golang99道练习题之18
**1.题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 ** **2.程序分析:关键是计算出每一项的值。 ** **3.程序源代码: ** ```go package main import "fmt" func main() { var m, n, Sn, Tn = 1, 1, 0, 0 fmt.Print("请输入一个数字:"...
-
golang99道练习题之12
**1.判断101-200之间有多少个素数,并输出所有素数。** **2.程序分析:判断素数的方法:用一个数分别去除2,如果能被整除,则表明此数不是素数,反之是素数。** **3.程序源代码:** ```go package main import "fmt" func main() { for i := 101; i <= 200; i++ { for j := 2; j <= i; j++ { if i != j && i%j...
-
golang99道练习题之15
**1.利用条件运算符的嵌套来完成此题:** **学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。** **2.程序分析:(a>b)?a:b这是条件运算符的基本例子。** **3.程序源代码:** **不支持这个运算符** ```go package main import "fmt" func main() { var score int var grade string fmt.Print("请输入你...
-
golang99道练习题之14
**1.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。** **2.程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:** (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 **3.程序源代码:** ```...
-
golang99道练习题之13
**1.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。** **例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。** **2.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。** **3.程序源代码:** ```go package main import "fmt" func main() { for i := 1; i < 10; i++ { ...
-
golang99道练习题之01
**1.题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?** **2.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 ** **3.程序源代码:** ```go package main import "fmt" func main() { for i := 1; i < 5; i++ { for j := 1; j < 5; j++ { for k := 1; k...
-
golang99道练习题之02
**题目:企业发放的奖金根据利润提成。** **利润(I)低于或等于10万元时,奖金可提10%;** **利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;** **20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;** **60万到100万之间时,高于60万元的部分,可提成1.5%;** **高于100万元时,超过100万元的部分按1%提成从键盘输入当月利...
-
golang99道练习题之11
**1.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,** **小兔子长到第三个月后每个月又生一对兔子,** **假如兔子都不死,问每个月的兔子总数为多少?** **2.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....** **3.程序源代码:** ```go package main import "fmt" func main() { f1 := 1 f2 := 1 for i := 1; i <= 20; ...
-
golang99道练习题之10
**1.打印楼梯 ** **2.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 ** **3.程序源代码: ** ```go package main import "fmt" func main() { for i := 1; i < 11; i++ { for j := 1; j <= i; j++ { fmt.Printf("%c%c", 219, 219) } fmt.Println() }...
-
golang99道练习题之09
**1.题目:要求输出国际象棋棋盘。** **2.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。** **3.程序源代码:** ```go package main import "fmt" func main() { for i := 0; i < 8; i++ { for j := 0; j < 8; j++ { if (i+j)%2 == 0 { fmt.Printf("%c%c", 219,...
-
golang99道练习题之08
**1.输出9*9口诀。** **2.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。** **3.程序源代码:** ```go package main import "fmt" func main() { for i := 1; i < 10; i++ { for j := 1; j < 10; j++ { result := i * j fmt.Printf("%d*%d=%-3d ", i, j, result) ...
-
golang99道练习题之07
**1.题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!** **2.程序分析:字符共有256个。不同字符,图形不一样** **3.程序源代码:** ```go package main import "fmt" func main() { var a rune = 176 var b rune = 219 fmt.Printf("%c%c%c%c%c\n", b, a, a, a, b) fmt.Printf("%...
-
golang99道练习题之06
**1.用*号输出字母C的图案。** **2.程序分析:可先用'*'号在纸上写出字母C,再分行输出。** **3.程序源代码:** ```go package main import "fmt" func main() { fmt.Printf(" *****\n") fmt.Printf("*** **\n") fmt.Printf("** **\n") fmt.Printf("** \n") fmt.Printf("** \n")...
-
golang99道练习题之04
**1.题目:输入某年某月某日,判断这一天是这一年的第几天?** **2.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,** **特殊情况,闰年且输入月份大于3时需考虑多加一天。** **3..程序源代码:** ```go package main import "fmt" func main() { var year, mouth, day, sum, feb int fmt.Println("请输入年月日:")...
-
golang99道练习题之05
**1.题目:输入三个整数x,y,z,请把这三个数由小到大输出。** **2.程序分析:我们想办法把最小的数放到x上,** **先将x与y进行比较,如果x>y则将x与y的值进行交换,** **然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。** **3.程序源代码:** ```go package main import ( "fmt" ) func main() { var x, y, z, temp float6...