你好!欢迎来到 !
语言
当前位置: 首页>> 技术中心>> 单片机入门>> C语言蓝桥杯题目两道

C语言蓝桥杯题目两道

关键字: C语言 作者:admin 来源:不详 发布时间:2018-05-18 浏览:2

  1. Description: 密码发生器
  2. 在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了...
  3. 这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。 变换的过程如下:
  4. 第一步. 把字符串6个一组折叠起来,比如wangximing则变为:
  5. wangxi ming
  6. 第二步. 把所有垂直在同一个位置的字符的ascii码值相加,得出6个数字,如上面的例子,则得出:
  7. 228 202 220 206 120 105
  8. 第三步. 再把每个数字“缩位”处理:就是把每个位的数字相加,得出的数字如果不是一位数字,就再缩位,直到变成一位数字为止。例如: 228 => 2+2+8=12 => 1+2=3 上面的数字缩位后变为:344836, 这就是程序最终的输出结果! 要求程序从标准输入接收数据,在标准输出上输出结果。
  9. 输入格式为:第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行字符串,就是等待变换的字符串。
  10. 输出格式为:n行变换后的6位密码。
  11. 例如,输入: 5
  12. zhangfeng wangximing
  13. jiujingfazi
  14. woaibeijingtiananmen haohaoxuexi
  15. 则输出: 772243 344836 297332 716652 875843
  16. Fuction List:
  17. ************************************************************/
  18. #include
  19. #include
  20. int reduction(int m)
  21. {
  22. int k = 0;
  23. if (m<10)
  24. {
  25. return m;
  26. }
  27. while(m)
  28. {
  29. k += m%10;
  30. m /= 10;
  31. }
  32. return reduction(k);
  33. }
  34. void f(char s[],char x[])
  35. {
  36. int i,j,n,k;
  37. n = strlen(s);
  38. for (i=0; i<6; i++)
  39. {
  40. for (k=0,j=i; j
  41. {
  42. k += s[j];
  43. }
  44. x[i] = reduction(k) + '0';
  45. }
  46. x[6] = '\n';
  47. }
  48. int main()
  49. {
  50. char s[100] = {"wangximing"};
  51. char t[10000] = {""};
  52. int len = 0;
  53. int n; // 有n行密码
  54. scanf ("%d",&n);
  55. while (n)
  56. {
  57. n--;
  58. scanf ("%s",s);
  59. f(s,t+len);
  60. len += 7;
  61. }
  62. t[len-1] = '\0';
  63. puts(t);
  64. return 0;
  65. }
[cpp]view plain copy

  1. /**********************************************************
  2. File Name:
  3. Description: 4.取球游戏
  4. 今盒子里有n个小球,A、B两人轮流从盒中取球,
  5. 每个人都可以看到另一个人取了多少个,也可以
  6. 看到盒中还剩下多少个,并且两人都很聪明,不
  7. 会做出错误的判断。
  8. 我们约定:
  9. 每个人从盒子中取出的球的数目必须是:1,3,7或者8个。
  10. 轮到某一方取球时不能弃权!
  11. A先取球,然后双方交替取球,直到取完。
  12. 被迫拿到最后一个球的一方为负方(输方)
  13. 请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A是否能赢?
  14. Fuction List:
  15. ************************************************************/
  16. #include
  17. int main()
  18. {
  19. int a[16] = {0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1};
  20. int n[10001];
  21. int j[10001];
  22. int m;
  23. int i;
  24. int temp;
  25. scanf("%d",&m);
  26. for(i = 0; i < m; i++)
  27. {
  28. scanf("%d",&n[i]);
  29. temp = n[i] % 15;
  30. j[i] = a[temp-1];
  31. }
  32. for (i = 0; i < m; i++)
  33. {
  34. printf("%d\n",j[i]);
  35. }
  36. return 0;
  37. }

编辑:admin 最后修改时间:2018-05-18

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright ? 2014-2023 All Rights Reserved.粤ICP备14043402号-4

Baidu
map