两个小算法

1.现在有100元,公鸡5元每只,母鸡3元每只,小鸡1元每只,要求三种鸡都必须买,并且正好100元花完,三种鸡加起来凑足100只。

我们可以假设公鸡为x只,母鸡为y只,小鸡为z只。

百鸡百钱算法

#include<stdio.h>

#include<stdlib.h>

void main(){

__asm{xor eax,eax}

for(size_t x=1,x<20;x++){

for(size_t y=1;i<33;y++){

int z=100-x-y;

if(z%3==0)&((5*x)+(3*x)+(z/3)==100)){

printf("公鸡 d%母鸡d%小鸡d%",x,y,z);

}

}

}

system("pause");

}

2.睡眠函数(延迟函数)

#include<stdio.h>

#include<stdlib.h>

#include<windows.h>

void main(){

for(size_t i=0;i<5;i++){

printf("%d",i);

sleep(1000);

}

system("pause");

}

3.排序函数

#include<stdio.h>

#include<stdlib.h>

void main(){

int l_array[ ]={13,21.5.37.8};

int l_length=sizeof(l_array)/sizeof(int);

int l_temp;

for(size_t i=0;i<length-1;i++){

for(size_t ii=i+1;ii<length;ii++){

if(ii>i){

l_temp=l_array[i];

l_array[ii]=l_array[i];

l_array[i]=l_temp;

}

}

}

system("pause");

}

时间: 2024-08-01 10:44:39

两个小算法的相关文章

特殊的日子(2015年5月1日劳动节)纪念回归和新的征程,用LRU和LFU两个小算法原理和区别来抛砖引玉

很久没有写过新的博客了,原因有很多,冠冕堂皇的理由就是工作忙,生活忙,各种累,直白一点其实就是变懒了,所以没有写. 在沉寂了这么长一段时间过后,终于又要重新出发了,对于自己当前的状态,觉得首先要有所沉淀,然后就是要放空自己,唯有放空自己方能继续进步. 以后一段时间更新的博客内容主体是与Android Framework相关的疑难问题分析.机制实现的原理.源代码调用分析,然后伴有一些常用的小算法,语言特性,程序原理等. 今天就先介绍LRU和LFU这两个在Android的Framework以及App

021.两个小算法

#include<stdio.h>#include<stdlib.h>void main() { //13,21,5,37,8,47,6,89,100,37,5 给数排序 int l_array[] = { 13,21,5,37,8,47,6,89,100,37,5 }; int l_length = sizeof(l_array) / sizeof(int); int l_temp; for (size_t i = 0; i < l_length - 1; i++) { f

每天一个小算法(2)----合并两个有序链表

每天一个小算法还是有点没时间,尽量抽出时间写一写. 今天是合并有序的链表,对单链表有点忘了,尤其是指针指来指去的,有点晕,幸好基础还算好,想了想还是能想回来. 代码使用随机数函数生成一个链表,然后对链表排序,最后合并链表并打印,删除链表的函数于算法无关紧要,所以未实现^_^. 在Linux/g++下编译运行成功. 合并思路:和合并数组有些类同,比较两个节点的元素大小然后将小的摘下来尾插到链表bList中,然后指针指向下一个节点,最后直接把非空的链表合并到bList的末尾. 1 #include

每天一个小算法(6)---- 通过两个栈实现一个队列

这个算法也很简单,定义两个栈m_aStack.m_bStack,m_aStack负责push()数据,m_bStack负责front()数据. 思路:每一次front()取数据都会检查一下m_bStack是否为空,为空则把m_aStack的所有数据pop()出来push()到m_bStack中. 因为STL里有stack,直接拿来用了,代码使用C++,在linux/g++下编译运行成功: 1 #include <stack> 2 #include <stdio.h> 3 #incl

小算法:合并两个有序数组,合并之后仍然有序

1 /** 2 * 合并两个有序数组,合并后仍然有序 3 * @param a 要合并的数组A 4 * @param b 要合并的数组B 5 * @param c 合并后的数组C 6 */ 7 public static void merge(int a[] ,int b[],int c[]){ 8 int lengthA = a.length; 9 int lengthB = b.length; 10 11 int indexA = 0; 12 int indexB = 0; 13 int i

挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法

转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的一种聚类算法,是BIRCH层次聚类算法的改进版本.可以应用于混合属性数据集的聚类,同时加入了自动确定最佳簇数量的机制,使得方法更加实用.本文在学习文献[1]和“IBM SPSS Modeler 15 Algorithms Guide”的基础上,融入了自己的理解,更详尽地叙述两步聚类算法的流程和细节.

关于数组的一些小算法

1.已知两个有序数组A,B,将它们合并为一个有序数组.利用到的是归并算法的思想. int* combine(int a[],int n1,int b[],int n2) { int i = 0,j = 0,k = 0; int *c = new int[n1+n2]; while(i<n1&&j<n2) //依次比较a,b数组当前元素,将小的元素放前面,下标后移 { if(a[i]<=b[j]) c[k++] = a[i++]; else c[k++] = b[j++];

java每日小算法(6)

/*[程序6] 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 1.程序分析:利用辗除法. */ package test; public class test { //最大公约数 public static int commonisor(int n, int m) { int max = (n>=m)?n:m; int min = (n>=m)?m:n; int r = max % min; while(r != 0) { max = min; min = r; r = max %

算法—比较两种排序算法:选择排序和插入排序

现在我们已经实现了两种排序算法,我们很自然地想知道选择排序和插入排序哪种更快.这里我们第一次用实践说明我们解决这个问题的办法. 性质:对于随机排序的无重复主键的数组,插入排序和选择排序的运行时间是平方级别的,两者之比应该是一个较小的常数. 例证:这个结论在过去的半个世纪中已经在许多不同类型的计算机上经过了验证.在1980年本书第一版完成之时插入排序就比选择排序快一倍,现在仍然是这样,尽管那时这些算法将10万条数据排序需要几个小时而现在只需要几秒钟.在你的计算机上插入排序也比选择排序快一些吗?可以