浙江大学09计算机上机题(含答案).doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浙江大学09计算机上机题(含答案)

xxx定律题目描述: ??? 对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止。 ??? 请计算需要经过几步才能将n变到1,具体可见样例。 输入: ??? 测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束。(1=n=10000) 输出: ??? 对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行。 样例输入: 3 1 0 样例输出: 5 0 #includestdio.h #includestdlib.h #includestring.h int n, step; int main() { ? ? while (scanf(%d, n), n) { ? ?? ???step = 0; ? ?? ???while (n != 1) { ? ?? ?? ?? ?if (n 1) { ? ?? ?? ?? ?? ? n = 3 * n + 1; ? ?? ?? ?? ?? ? n = 1; ? ?? ?? ?? ?} else { ? ?? ?? ?? ?? ? n = 1; ? ?? ?? ?? ?} ? ?? ?? ?? ?step++; ? ?? ???} ? ?? ???printf(%d\n, step); ? ? } ? ? return 0; } 仅供参考 #include stdio.h unsigned int count=0; void odd(int); void even(int); int main(void){ ? ? ? ? int a; ? ? ? ? while(scanf(%u,a)!=EOF a!=0){ ? ? ? ? ? ? ? ? count=0; ? ? ? ? ? ? ? ? if(a==1){ ? ? ? ? ? ? ? ? ? ? ? ? printf(%u\n,count); ? ? ? ? ? ? ? ? ? ? ? ? continue; ? ? ? ? ? ? ? ? }else if(a%2==0){ ? ? ? ? ? ? ? ? ? ? ? ? even(a); ? ? ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? ? ? ? ? odd(a); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? printf(%u\n,count); ? ? ? ? } ? ? ? ? return 0; } void odd(int a){ ? ? ? ? a=a*3+1; ? ? ? ? even(a); } void even(int a){ ? ? ? ? if(a==2){ ? ? ? ? ? ? ? ? count++; ? ? ? ? }else if(a%2==0){ ? ? ? ? ? ? ? ? a/=2; ? ? ? ? ? ? ? ? count++; ? ? ? ? ? ? ? ? even(a); ? ? ? ? }else{ ? ? ? ? ? ? ? ? odd(a); ? ? ? ? } } AC成功,分享一下 二、ZOJ 题目描述: 读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。 输入: 题目包含多组用例,每组用例占一行,包含ZOJ三个字符,当输入“E”时表示输入结束。 1=length=100。 输出: 对于每组输入,请输出一行,表示按照要求处理后的字符串。 具体可见样例。 样例输入: ZZOOOJJJ ZZZZOOOOOJJJ ZOOOJJ E 样例输出: ZOJZOJOJ ZOJZOJZOJZOO ZOJOJO 已ac #includestdio.h #includestring.h int main() {char a[101]; int k,k1,k2,k3,i; while(scanf(%s,a)!=EOF) {if(a[0]==E)return 0; else {k=-1+strlen(a); k1=k2=k3=0; for(i=0;i=k;i++) {if(a[i]==Z)k1++; if(a[i]==O)k2++; if(a[i]==J)k3++;} if(k1=k2k2=k3) {for(i=1;i=k3;i++)printf(ZOJ); for(i=1;i=k2-k3;i++)printf(ZO); for(i=1;i=k1-k2;i++)printf(Z); printf(\n);continue;} if(k1=k3k3=k2) {for(i=1;i=k2;i++)printf(ZO

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档