//题目46:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只
//猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了
//一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
//问海滩上原来最少有多少个桃子? #include<stdio.h>
#include<stdlib.h> //分析:最少有多少个桃子,说明是满足条件的最小数;假设有X个桃子,第一个猴子的桃子数量是(X-1)/5,
//第二只猴子的数量是(第一个猴子的桃子数量的4倍-1)/5 即(4*f(1)-1)/5=f(2)====> f(1)=(5*f(2)+1)/4
//f(n)=(5*f(n+1)+1)/4 int i = ;
int t = ; int Peach(int n){
if (n == )
{
i++;
return i;
}
else{
t = * Peach(n + ) + ;
do{
t = * Peach(n + ) + ;
} while (t % != );
//如果不是4的倍数 那么第n个猴子有的桃子数量不是整数,
return t / ;
}
} void main(){ printf("海滩上原来最少有%d个桃子\n", *Peach()+);
system("pause");
}

//题目47:尼科彻斯定理证明
//任何一个整数的立方都可以写成一串连续奇数的和 //思路:一串连续奇数,可以从1+3+...,当和>整数的立方的时候,可以减去第一个奇数1,继续判断和是否>整数的立方
//如果仍然大于整数的立方,再减去第二个奇数,一直继续直到和小于整数的立方时,末尾再加上 最后的奇数+2
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<assert.h> void main(){
int tnum = ;
int num = ;
int tsun = ;
int index = ;
int k = ;
int i = ;
printf("请输入一个整数\n");
scanf("%d", &tnum);
//断言
assert(tnum != );
num = tnum*tnum*tnum;
while (){
tsun += i;
i += ;
if (i>num)
{
break;
}
//当和大于整数的立方时,进行减少奇数操作
if (tsun>num)
{
index = tsun;
k = ;
//从1开始,不断减去前面的奇数
while (index > num){
index -= k;
k = k + ;
}
//如果结果不等于num,说明不是连续的奇数,需要在后面继续追加一个奇数
if (index != num)
{
continue;
}
else{
//打印结果
for (int m = k; m+ <=i; m=m+)
{
if (m+>=i)
{
printf("%d", m);
}
else{
printf("%d+", m);
}
}
break;
}
}
//当和等于整数的立方时
else if (tsun==num)
{
//打印结果
for (int m = ; m+ <=i; m = m + )
{
if (m + >= i)
{
printf("%d", m);
}
else{
printf("%d+", m);
}
}
break;
}
}
printf("=%d\n",num); system("pause");
}

//题目48:父亲拿出2520个苹果,按照写在纸上的数量分给6个兄弟,每个人分到的苹果数量都不相同
//他说:老大,把你分到的苹果的1/8给老二,老二拿到后,连同原来的苹果分1/7给老三,老三拿到后,
//连同原来的苹果分1/6给老四,以此类推,最后老六拿到后,连同原来的苹果分1/7给老大,
//这样你们每个人分到的苹果数量就一样多了。求出原来各兄弟分得多少个苹果。 #include<stdio.h>
#include<stdlib.h> //思路:从老二开始分析:老二没分苹果时苹果的数量 = 老大原有的苹果数量*(1/8) + 老二原有的苹果数量
//就老二比较特殊,后面的就比较规律
//老三没分苹果时苹果的数量 = 老二没分苹果时苹果的数量*(1/7) + 老三原有的苹果数量
//按照此规律,最后6个人苹果的数量相等 都是420个
//那么 老二没分苹果时苹果的数量*(6/7) = 420,由此可以求出 老二到老六没分苹果时苹果的数量
//老大的最终苹果数量420 = 老六没分苹果时苹果的数量*(1/3) + 老大原有的苹果数量*(7/8)
//由此可以求出老大原有的苹果数量,进而可以求出老二原有的苹果数量 void main(){
//x[6]表示原来的苹果,y[6]表示拿到苹果不分给其他人的苹果数量
int x[] = { }, y[] = {};
//根据分析 老二拿到的苹果(不分给老三)=老大以前的苹果*(1/8)+老二原来的苹果
//即;老二原来的苹果=老二拿到的苹果(不分给老三)-老大以前的苹果*(1/8) for (int i = ; i < ; i++)
{
y[i] = * ( - i) / ( - i);
}
//获取老大原来的苹果数
//420=老六苹果数(不分给别人)*1/3+老大原来苹果数(7/8)
//老大原来苹果数=(420-老六苹果数(不分给别人)*1/3)*8/7
//y[0]=x[0]的解释 老大拿到苹果不分给其他人的苹果数量 就是老大原来的苹果数量
y[]=x[] = ( - y[] * / ) * / ;
for (int i = ; i < ; i++)
{
//y[i - 1] / (9-i) 把老二没分苹果的数量*(1/7)+老三原有的数量 ==老三现在没分苹果的数量
//老三原有的数量==老三现在没分苹果的数量 - 老二没分苹果的数量*(1/7)
x[i] = y[i] - y[i - ] / (-i);
}
int sun = ;
for (int i = ; i < ; i++)
{
sun += x[i];
printf("第%d个兄弟的原来的苹果数量%d\n",i+,x[i]);
}
printf("总数量是%d\n",sun);
system("pause");
}

C语言 百炼成钢16的更多相关文章

  1. C语言基础(16)-指针

    一.指针的相关概念 1.1 指针变量 指针是一个变量,存放的是一个地址,该地址指向一块内存空间. 例: ; int *p = &a; // 定义一个指针变量p,&符号可以取得一个变量在 ...

  2. C语言 百炼成钢1

    //题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> ...

  3. C语言 百炼成钢19

    /* 题目55: 有一个字符串符合以下特征(”abcdef,acccd,eeee,aaaa,e3eeeee,sssss,";),要求写一个函数(接口),输出以下结果 1) 以逗号分割字符串, ...

  4. C语言 百炼成钢6

    //题目16:输入两个正整数m和n,求其最大公约数和最小公倍数. #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include< ...

  5. C程序设计语言练习题1-6

    练习1-6 验证表达式getchar() != EOF的值是0还是1. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为ma ...

  6. 用纯c语言完成16位模式下的引导程序

    gcc在16位模式下做引导程序遇到的问题太多了,不过费了很大劲逐一解决了. 自己的小demo也从一开始的1个扇区增加到了20几个扇区. 先上图做个标记,后面有时间再上代码.

  7. Java入门 - 语言基础 - 16.数组

    原文地址:http://www.work100.net/training/java-array.html 更多教程:光束云 - 免费课程 数组 序号 文内章节 视频 1 概述 2 声明数组变量 3 创 ...

  8. C语言 百炼成钢3

    //题目7:用*号输出空心菱形图案 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> # ...

  9. C语言 百炼成钢2

    //题目4:输入某年某月某日,判断这一天是这一年的第几天? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<st ...

随机推荐

  1. Google可能会用苹果的Swift 为什么?

    Google可能会用苹果的Swift 为什么? 2014 年夏天,苹果在 WWDC 大会上宣布了全新的程序语言 Swift,主要用来开发 iOS 与 OSX 应用. 去年年底,苹果将 Swift 开源 ...

  2. 【读书笔记】iOS-Coco内存管理规则-拥有对象

    一,事件循环.一个典型的图形应用程序往往花费很多时间等待用户操作.在控制程序运行的人非常缓慢地作出决定(例如单击鼠标或按下某个键)以前,程序将一直处于空闲状态.当发生这样的事件时,程序被唤醒并开始工作 ...

  3. Swift的7大误区

    Swift正在完成一个惊人的壮举,它正在改变我们在苹果设备上编程的方式,引入了很多现代范例,例如:函数式编程和相比于OC这种纯面向对象语言更丰富的类型检查. Swift语言希望通过采用安全的编程模式去 ...

  4. 插入排序(java版)

    public class InsertSortTest{ public static void InsertSort(int[] source) { //默认第一个元素已排序 for (int i = ...

  5. Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect

    本节要点:红色标记 需要记下来 1   NSRange typedef struct _NSRange {     NSUInteger location;     NSUInteger length ...

  6. Resharper注册机实现以及源代码

    一直用Resharper,每次找注册机也麻烦,就想怎么才能自己能做个注册机,把它原理给搞懂了,不就不用找了.今天早上起来研究了下Resharper注册机,网上找到一位大神之前做Resharper注册机 ...

  7. tair源码分析——leveldb存储引擎使用

    分析完leveldb以后,接下来的时间准备队tair的源码进行阅读和分析.我们刚刚分析完了leveldb而在tair中leveldb是其几大存储引擎之一,所以我们这里首先从tair对leveldb的使 ...

  8. jQuery无刷新上传之uploadify简单试用

    先简单的侃两句:貌似已经有两个月的时间没有写过文章了,不过仍会像以前那样每天至少有一至两个小时是泡在园子里看各位大神的文章.前些天在研究“ajax无刷新上传”方面的一些插件,用SWFUpload实现了 ...

  9. Web Service中的几个重要术语

    WSDL:web service definition language 直译:WebService定义语言 1.对应一种该类型的文件.WSDL 2.定义了Web Service的服务器与客户端应用交 ...

  10. MAC、IDFA、IMEI正则表达式

    一.安卓: MAC:接入网络的设备的序号,唯一值.用 16 进制数表示,由 0-9,A-F 组成,如:44:2A:60:71:CC:82 Uuid 正则表达式: ^([0-9a-fA-F]{2})(( ...