黑马程序员技术交流社区

标题: ios基础班练习代码 [打印本页]

作者: 小丸子    时间: 2015-4-17 22:37
标题: ios基础班练习代码

  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);
复制代码



作者: Ammar    时间: 2015-4-17 22:43
顶你啊~~
作者: 1048    时间: 2015-4-17 22:44
整理的好清晰呀。。。。  
作者: 大白菜cabbage    时间: 2015-4-17 22:47
楼主写的真好!!!!!真大神啊!
作者: kaiyan1208    时间: 2015-4-17 22:48
太好了  顶一个
作者: 夜空守望者    时间: 2015-4-17 22:56
向大神膜拜
作者: Theshy    时间: 2015-4-17 22:56
一看LZ神作{:3_55:}   顿有醍醐灌顶之感{:2_41:}犹如黄河泛滥一发不可收拾{:3_46:}满满的都是今晚上作业的思路{:3_51:}敲作业去:loveliness::loveliness:
作者: yesha    时间: 2015-4-17 22:59
大神啊,膜拜
作者: 大家叫我小祥子    时间: 2015-4-17 23:00
这群人 我受不鸟了
作者: GO_monster    时间: 2015-4-18 09:08

先顶个经验啊
作者: 枫宇翔    时间: 2015-4-18 09:15
楼主好厉害啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2