C语言实现的猴子偷桃之类算法

 更新时间:2015年03月23日 10:37:11   投稿:hebedich  
本文给大家分享的是前些日子去面试的时候的试题,哎,真是没想到会出这么个题,好多年没碰过C了。。。。分享给大家,小伙伴们过来参观下吧。

C基础算法题 好多年没碰C了 很郁闷啊~

//
// main.c
// 算法题
//
// Created by mac on 14-8-9.
// Copyright (c) 2014年 mac. All rights reserved.
//
 
#include <stdio.h>
#include <math.h>
 
//10.
/*
 求S(n) = a+aa+aaa+aaaa+...+aa..a之值,其中a是一个数字,n表示a的位数例如:2+22+222+2222+22222(此时n=5),n和a都从键盘输入。
 
 */
 
int questionN(int n)
{
  int a = 2,num = 0; //n表示求和的个数he位数,a表示基数
  int sum = 0;
  for (int i = 0 ; i++ < n; ) {
    if(i==0)
    {
      num = a;
      continue;
    }
    num = num*10 + a; //2+10^i
    printf("%d+",num);
    sum += num;
  }
  return sum;
}
 
 
//11.
/*
 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少个桃子。
 */
 
 
int peank(int n)
{
  if (n == 1 ) return 1;
  return (peank(n-1)+1)*2;
}
 
int my_peank()
{
  int pean = 1,day = 9;
  for (;day-->0; ) pean = (pean+1)*2;
  return pean;
}
 
int main(int argc, const char * argv[])
{
  printf("一共摘了[%d]个桃子...(我的算法)\n",my_peank());
  printf("一共摘了[%d]个桃子...(老师的算法)\n",peank(10));
  printf("=[%d]",questionN(3));
  return 0;
}

以上所述就是本文的全部内容了,希望大家能够喜欢,再遇到这种弱智面试题能直接喷死面试官。

相关文章

  • 浅谈C语言中的注释风格小结

    浅谈C语言中的注释风格小结

    今天小编就为大家分享一篇浅谈C语言中的注释风格小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • C语言中typedef的用法以及#define区别详解

    C语言中typedef的用法以及#define区别详解

    这篇文章主要给大家介绍了关于C语言中typedef用法以及#define区别的相关资料,typedef 是用来定义一种类型的新别名的,它不同于宏(#define),不是简单的字符串替换。而#define只是简单的字符串替换(原地扩展),需要的朋友可以参考下
    2021-07-07
  • C++文件输入输出fstream使用方法

    C++文件输入输出fstream使用方法

    C++标准库提供了<fstream>头文件,其中包含了用于文件输入输出的相关类和函数,本文将详细介绍<fstream>头文件的使用方法,包括函数原型、打开文件、读取和写入文件、以及错误处理等注意事项,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • 麻将游戏算法深入解析及实现代码

    麻将游戏算法深入解析及实现代码

    这篇文章主要介绍了麻将游戏算法深入解析及实现代码的相关资料,需要的朋友可以参考下
    2017-03-03
  • C语言 sprintf 函数详情

    C语言 sprintf 函数详情

    这篇文章主要介绍了C语言 sprintf 函数,文章主要包括sprintf 函数简介、sprintf 函数使用和简单说明了一下sprintf、fprintf、printf 函数区别,需要的朋友可以参考一下文章的具体内容
    2021-10-10
  • android studio创建C++项目的实现示例

    android studio创建C++项目的实现示例

    本文主要介绍了android studio创建C++项目的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • C++读取单个字符操作示例详解

    C++读取单个字符操作示例详解

    这篇文章主要为大家介绍了C++读取单个字符操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • C++使用异或运算实现交换两个数的值

    C++使用异或运算实现交换两个数的值

    交换两个数的值,通常用利用一个变量来交换数值,异或交换两个数的值是资源开销最小的方法,不需要中介数,原理简单的来说就是异或的负负得正
    2018-09-09
  • C语言 解压华为固件的实例代码

    C语言 解压华为固件的实例代码

    这是解压华为固件(update.app)的C语言。。其实这也是我翻115翻出来的。。。
    2013-08-08
  • C语言switch语句和if用法介绍

    C语言switch语句和if用法介绍

    本文详细讲解了C语言switch语句和if用法介绍,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12

最新评论