A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

小丸子

中级黑马

  • 黑马币:0

  • 帖子:34

  • 精华:0

© 小丸子 中级黑马   /  2015-4-17 22:37  /  1496 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. /*
  2. 屏幕上输入一个数,实现使用其低四位翻转,即0变1,1变0,并输出得到的结果。
  3. */






  4. #include <stdio.h>

  5. int main(int argc, const char * argv[]) {
  6.     int len;
  7.     int n;
  8.     int b;
  9.     printf("请输入一个整数");
  10.     scanf("%d",&n);
  11.    
  12.     len=sizeof(n)*8;
  13.     for(int i=0;i<len-4;i++)
  14.     {
  15.         b=(n>>(len-1-i))&1;
  16.         printf("%d",b);
  17.     }
  18.     for (int i=0; i<4; i++) {
  19.         int c=(n>>i)&1;
  20.         printf("%d",c);
  21.     }
  22.    
  23.     return 0;
  24. }
复制代码
  1. //将正数转换成二进制数

  2. #include <stdio.h>

  3. int main(int argc, const char * argv[]) {
  4.     int len;
  5.     int n;
  6.     int b;
  7.     printf("请输入一个正整数");
  8.     scanf("%d",&n);
  9.    
  10.     len=sizeof(n)*8;
  11.     for(int i=0;i<len;i++)
  12.     {
  13.         b=(n>>(len-1-i))&1;
  14.         printf("%d",b);
  15.     }

  16.     return 0;
  17. }
复制代码
  1. /*
  2. 编写一个移位函数,使移位函数既能循环左移又能循环右移。参数n大于0时便是左移,参数n小于0时便是右移

  3. 解释:循环右移:把右边移出的位放到左边移入的位
  4. 如: 1101 0101 1100 循环左移四位  0101 1100 1101

  5. 循环左移:把左边移出的位放到右边移入的位
  6. */

  7. #include <stdio.h>

  8. int main(int argc, const char * argv[]) {
  9.     int n;
  10.     int num;
  11.     int len;
  12.     printf("请输入一个整数与参数n,参数n大于0时便是左移,参数n小于0时便是右移(中间用逗号隔开)");
  13.     scanf("%d,%d",&num,&n);
  14.     len=sizeof(num)*8;

  15.    
  16.     if (n>0) {
  17.         //左移,即先顺序输出后len-n位再顺序输出前n位
  18.         for (int i=0;i<len-n;i++) {
  19.             int c=(num>>(len-n-1-i))&1;
  20.             printf("%d",c);
  21.                 }
  22.         for (int j=0; j<n; j++) {
  23.             int d=(num>>(len-1-j))&1;
  24.             printf("%d",d);

  25.             
  26.         }
  27.         
  28.     }
  29.     if (n<0)
  30.     {    //右移,即先顺序输出后n位,再顺序输出前len-n位
  31.         for (int i=0;i<n;i++) {
  32.             int c=(num>>(n-1-i))&1;
  33.             printf("%d",c);
  34.         }
  35.         for (int j=0; j<len-n; j++) {
  36.             int d=(num>>(len-1-j))&1;
  37.             printf("%d",d);

  38.     }
  39.         
  40.         if(n==0)
  41.             printf("输入错误请重新运行");
  42.    
  43.         
  44.     return 0;
  45. }
  46. }
复制代码

  1. /*
  2. 题目:
  3. 编写一个函数int pieAdd(int n),计算1!+2!+3!+……+n!的值(n>=1)。
  4. 比如pieAdd(3)的返回值是1! + 2! + 3! = 1 + 1*2 + 1*2*3 = 9
  5. */

  6. #include <stdio.h>
  7. int pieAdd(int n);

  8. int main() {
  9.     // insert code here...
  10.    
  11.     int sum=0;
  12.     int p=0;
  13.     printf("请输入个数:");
  14.     scanf("%d",&p);
  15.     for(int i=1;i<=p;i++)
  16.     {
  17.         int a=pieAdd(i);
  18.         sum +=a;
  19.         
  20.     }

  21.     printf("最终值为%d\n",sum);
  22.     return 0;
  23. }
  24. int pieAdd(int n)
  25. {
  26.    
  27.     int j=1;

  28.     if(n==1)
  29.         return j=1;
  30.     else
  31.     {
  32.         j=n*pieAdd(n-1);
  33.         return j;
  34.     }

  35.    
  36. }





  37. int pieAdd(int n);
复制代码


评分

参与人数 13黑马币 +101 收起 理由
caishipi + 6 赞一个!
纸飞机的天空 + 5 赞一个!
yesha + 10 楼主才是大牛,膜拜
zeizei + 4 很给力!
Theshy + 10 你这下手有点晚啊。。 刚巴黎~~.
kaiyan1208 + 6 很给力!
夜空守望者 + 9 你是大神
花短裤的夏天 + 10 很给力!
泡沫小精灵 + 10 很给力!
Ammar + 3 班长只有这么多了

查看全部评分

10 个回复

倒序浏览
顶你啊~~
回复 使用道具 举报
整理的好清晰呀。。。。  
回复 使用道具 举报
楼主写的真好!!!!!真大神啊!
回复 使用道具 举报
太好了  顶一个
回复 使用道具 举报
向大神膜拜
回复 使用道具 举报
Theshy 中级黑马 2015-4-17 22:56:40
7#
一看LZ神作{:3_55:}   顿有醍醐灌顶之感{:2_41:}犹如黄河泛滥一发不可收拾{:3_46:}满满的都是今晚上作业的思路{:3_51:}敲作业去:loveliness::loveliness:
回复 使用道具 举报
yesha 中级黑马 2015-4-17 22:59:09
8#
大神啊,膜拜
回复 使用道具 举报
这群人 我受不鸟了
回复 使用道具 举报

先顶个经验啊
回复 使用道具 举报
楼主好厉害啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马