pat计算机能力考试乙级1-10题答案.pdfVIP

  • 49
  • 0
  • 约1.26万字
  • 约 10页
  • 2020-10-12 发布于江苏
  • 举报
1001 害死人不偿命的 (3n+1) 猜想 (15 分 对任何一个正整数 n,如果它是偶数, 那么把它砍掉一半; 如果它是奇数, 那么把 (3 n+1) 砍 掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学 家大会上公布了这个猜想, 传说当时耶鲁大学师生齐动员, 拼命想证明这个貌似很傻很天真 的命题,结果闹得学生们无心学业,一心只证 (3 n+1) ,以至于有人说这是一个阴谋,卡拉 兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地 数一下,需要多少步(砍几下)才能得到 n=1? 分析:输入一个正整数 n 进行循环, n=1 循环截止 , 判断 n, 如果它是偶数,那么把它砍掉一 半;如果它是奇数,那么把 (3 n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得 到 n=1,并计算经过的次数 m。 #includestdlib.h #includestdio.h int main() { int n,m; m=0; scanf_s(%d,n); while(n!=1) { if(n%2==0) { n=n/2; } else { n=(3*n+1)/2; } m++; } printf_s(%d\n,m); system(pause); } 1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 分析:输入一个正整数 n , while 循环求出 n 的各位数字之和 sum;如果 sum 等于 0,那么 就输出它的拼音” ling ”;如果不等于 0 ,输入数组 b 存放各位数字之和,在 switch 对这 个数组进行判断数组 b 各个数的数值为多少, 0 对应 ling; 1 对应 yi;2: 对应 er;3 对应 san;4 对应 si;5 对应 wu;6 对应 liu;7 对应 qi;8 对应 ba;9 对应 jiu; #includeiostream using namespace std; int main() { char a[101]; cina; int sum=0,i=0; while(a[i]!=\0) { sum+=a[i]-0; ++i; } if(sum==0) { coutlingendl; } int b[11],j=0 ; while(sum!=0) { b[j]=sum%10; sum=sum/10;

文档评论(0)

1亿VIP精品文档

相关文档