博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[算法]有趣算法合辑[31-40]
阅读量:7232 次
发布时间:2019-06-29

本文共 3462 字,大约阅读时间需要 11 分钟。

题目31:八进制转换为十进制

1.程序分析:           
2.程序源码:

main(){ char *p,s[6];int n;  p=s;  gets(p);  n=0;  while(*(p)!='\0')  {n=n*8+*p-'0';  p++;}  printf("%d",n);}

题目32:求0—7所能组成的奇数个数。

1.程序分析:
2.程序源码:
main(){  long sum=4,s=4;  int j;  for(j=2;j<=8;j++)/*j is place of number*/  { printf("\n%ld",sum);  if(j<=2)  s*=7;  else  s*=8;  sum+=s;}  printf("\nsum=%ld",sum);}

题目33:一个偶数总能表示为两个素数之和。

1.程序分析:
2.程序源码:
#include "stdio.h"#include "math.h"main(){ int a,b,c,d;  scanf("%d",&a);  for(b=3;b<=a/2;b+=2)  { for(c=2;c<=sqrt(b);c++)  if(b%c==0) break;  if(c>sqrt(b))    d=a-b;  else    break;  for(c=2;c<=sqrt(d);c++)  if(d%c==0) break;  if(c>sqrt(d))    printf("%d=%d+%d\n",a,b,d);  }}

题目34:推断一个素数能被几个9整除

1.程序分析:
2.程序源码:
main(){ long int m9=9,sum=9;  int zi,n1=1,c9=1;  scanf("%d",&zi);  while(n1!=0)  { if(!(zi/sum)) /*若整数a除以非零整数b。商为整数。且余数为零, 我们就说a能被b整除(或说b能整除a),记作b|a。注意b为0则不叫整除。*/     n1=0;    else    {m9=m9*10;     sum=sum+m9;     c9++;     }   }    printf("%ld,can be divided by %d \"9\"",sum,c9);}

题目35:某个公司採用公用电话传递数据,数据是四位的整数。在传递过程中是加密的,加密规则例如以下:

   每位数字都加上5,然后用和除以10的余数取代该数字。再将第一位和第四位交换。第二位和第三位交换。
1.程序分析:
2.程序源码:
main(){int a,i,aa[4],t;  scanf("%d",&a);  aa[0]=a%10;  aa[1]=a%100/10;  aa[2]=a%1000/100;  aa[3]=a/1000;  for(i=0;i<=3;i++)  {aa[i]+=5;   aa[i]%=10;  }  for(i=0;i<=3/2;i++)  {t=aa[i];   aa[i]=aa[3-i];   aa[3-i]=t;  }  for(i=3;i>=0;i--)    printf("%d",aa[i]);}

题目36:海滩上有一堆桃子,五仅仅猴子来分。第一仅仅猴子把这堆桃子凭据分为五份。多了一个,这仅仅

   猴子把多的一个扔入海中,拿走了一份。第二仅仅猴子把剩下的桃子又平均分成五份,又多了

   一个,它相同把多的一个扔入海中,拿走了一份,第三、第四、第五仅仅猴子都是这样做的,
   问海滩上原来最少有多少个桃子?
1.程序分析:
2.程序源码:

main(){    int i,m,j,k,count;    for(i=4;i<10000;i+=4)    {       count=0;      m=i;      for(k=0;k<5;k++)      {       j=i/4*5+1;       i=j;       if(j%4==0)        count++;       else        break;      }     i=m;     if(count==4)     {       printf("%d\n",count);      break;      }    }}

题目37:有n个人围成一圈。顺序排号。

从第一个人開始报数(从1到3报数)。凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

1. 程序分析:

2.程序源码:

#define nmax 50main(){  int i,k,m,n,num[nmax],*p;  printf("please input the total of numbers:");  scanf("%d",&n);  p=num;  for(i=0;i

题目38:递归前n项积

1. 程序分析:
2.程序源码:

int fac (int n){   if(n==1)   return 1;   return n*fac(n-1);}

题目39:移除同样字符串

1. 程序分析:
2.程序源码:

public static string RemoveExtraCharAndWithoutSort(string str)        {            if (string.IsNullOrEmpty(str))            {                return null;            }            int[] tempArr = new int[256];            string newStr = string.Empty;            for (int i = 0; i < str.Length; i++)            {                if (tempArr[str[i]] == 0)                {                    tempArr[str[i]] = 1;                    newStr += str[i];                }            }            return newStr;        }

题目40:倒数第m个节点

1. 程序分析:相对于双向链表来说,单向链表仅仅能从头到尾依次訪问链表的各个节点,所以假设要找链表的倒数第m个元素也仅仅能
从头到尾进行查找,在查找的过程中,设定两个指针。当中current指针指向当前訪问的节点。
 previous指针指向current之前的节点,且两者之间相距m个节点。这样,当current指针指向最后
一个节点时。那previous指针指向的元素就是倒数第m个元素,程序的处理步骤例如以下:
2.程序源码:

element *CLinkList::FindMToLastElement(int m)    {         element *previous, *current;         previous = current = head;         // 訪问前m-1个节点        for(int i = 0; i < m-1; ++i)        {           current = current->next;          if(current == NULL)          {             printf("number overstep\n");             return NULL;          }       }       //previous指针和current指针一起向尾移动       while(current->next != NULL)       {          previous = previous->next;          current = current->next;       }       //返回previous指针       return previous;    }

转载地址:http://sopfm.baihongyu.com/

你可能感兴趣的文章
关于VC++6.0 MFC项目运行所需的动态链接库
查看>>
由system.currentTimeMillis() 获得当前的时间
查看>>
复习日记-Linux项目发布
查看>>
The 'Microsoft Jet OLEDB 4.0 Provider' is not registered on the local machine
查看>>
Java 基础源码 switch语句判断指定月份属于一年中的哪个季度
查看>>
12px以下字体显示问题
查看>>
小程序滚动条 无法滚动BUG 解决方案
查看>>
cs108 04 oop design
查看>>
win7 打开方式不能添加程序
查看>>
EasyUI-panel 内嵌页面上的js无法被执行
查看>>
pycharm运行input输入字符串报错 NameError: name 'xxx' is not defined
查看>>
微信小程序rpx单位
查看>>
Javascript读写CSS属性
查看>>
58.com qiyi
查看>>
ORACLE批量导入图片到BLOB字段
查看>>
OpenCl工作组
查看>>
Angular 学习笔记——$interpolate
查看>>
Javascript模块化编程之Why
查看>>
2016/4/5 对象
查看>>
[反射]通用方法 命名空间,类,对象,属性
查看>>