周次 |
学习时间 |
新编写代码行数 |
博客量(篇) |
学到知识点 |
第15周 |
-0.5h |
1 |
函数‘及算法加深 |
#include"stdio.h"
#include"string.h"
main()
{
char string[20];
char c;
int word=0,num=0,i;
printf("请输入一个句子:");
gets(string);
for(i=0;(c=string[i])!=‘\0‘;i++)//结束条件:字符串结束符
{
if(c==‘ ‘)word=0;//判断字符前是否是空,如果不是,则单词计数+1
else if(word==0)
{
word=1;//标志置1;代表这个字符前面是个连接的符
num++;
}
}
printf("这句子里有%d个单词。",num);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
汉诺塔是根据一个传说形成的一个问题:有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:提示:可将圆盘临时置于B杆,也可将从A杆移出的圆盘重新移回A杆,但都必须尊循上述两条规则。问:如何移?最少要移动多少次?
#include<stdio.h>
main()
{
int n;
printf("Please input tier of the hanoi:");
scanf_s("%d",&n);
hanoi(n,‘A‘,‘B‘,‘C‘);
getch();
}
hanoi(int n, char a, char b, char c)
{
if (n == 1) printf("\t%c --> %c\n",a,c);//如只有一层,直接A-》C;
else
{
hanoi(n - 1, a, c, b);//(1) 把n-1个盘子由A 移到 B;
printf("\t%c --> %c\n",a,c);//(2) 把第n个盘子由 A移到 C;
hanoi(n - 1, b, a, c);//(3) 把n-1个盘子由B 移到 C;
}
}
运行结果:
Please input tier of the hanoi:3
A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> C
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//舍罕王失算(麦子)
故事:
相传现在流行的国际象棋是古印度舍罕王(Shirham)的宰相达依尔(Dahir) 发明的。舍罕王十分喜爱国际象棋,决定让达依尔自己要求得到什么赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:”陛下,请你赏给我一些麦子吧,就在棋盘的第1格中放1粒,第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,一次放完棋盘上的64格,我就感恩不尽了。“
舍罕王让人扛来了一袋麦子,他要兑现达依尔的许偌。。。请问,舍罕王能兑现他的许偌吗?
摆放完棋盘上的64格共需多少麦子?这些小麦合多少吨(1吨小麦约2.4e7粒)?这些小麦相当于世界粮食年总产量(以2014年度数据2.48e9吨计算)的多少倍?
main()
{
double t, v, p, s;
int i, n;
printf("请输入格数n:");
scanf_s("%d",&n);
t = 1; s = 1;
for (i = 2; i <= n; i++)
{
t = t*2;//进行计算
s = s + t;
}
v = s / 2.4e7;//求吨数
p = v / 2.48e9;//世界粮食产量的倍数
if (n <= 40)printf("总麦子数量为:%。0f\n", s);
else
printf("格数n为%d的麦子数量为%.3e\n",n,s);//就是计算量有点大,输出的时候需要仔细确认,我是错了好久才调好的;
printf("这些粮食重量为:%.0f吨。\n",v);
printf("约等于世界粮食产量的%.0f倍",p);
getch();
}
运行结果:
请输入格数n:64
格数n为64的麦子数量为1.845e+19
这些粮食重量为:768614336405吨。
约等于世界粮食产量的310倍
////////////////////////////////////////////////////////////////////////////////////////////
最近考试什么的没能自觉的敲代码,导致这星期除了上课没什么敲,上面都是之前敲的就拿出来顶一下。
By Genmer-Visual Stduio 2017 Programming