ios-简单算法
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; //一、斐波那契数列
for (int i=; i<; i++) {
NSLog(@"称斐波那契数列:%d",[self gold:i]);
} NSLog(@"\n---------我是分割线------------\n"); //二、求和
NSLog(@"求和:%d",[self sum:]);
NSLog(@"\n---------我是分割线------------\n");
NSMutableArray * arr = @[@,@,@,@,@].mutableCopy; //三、冒泡排序
NSLog(@"冒泡排序:");
for (id s in [self sortArrBig:arr]) {
NSLog(@"%@ ",s);
}
NSLog(@"\n---------我是分割线------------\n"); //四、水仙花
[self Narcissus]; NSLog(@"\n---------我是分割线------------\n"); //五、将一个正整数分解质因数
NSLog(@"正整数分解质因数");
[self PositiveInt:];
NSLog(@"\n---------我是分割线------------\n");
/*
六、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
*/
NSLog(@"猴子吃桃问题:%d",[self peach:]);
NSLog(@"\n---------我是分割线------------\n"); //七、数列求和
/*有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。*/
NSLog(@"数列的前20项之和:%f",[self molecule:]);
NSLog(@"\n---------我是分割线------------\n");
/*八、打印菱形 *
***
*****
***
* */
[self diamond:];
NSLog(@"\n---------我是分割线------------\n"); //九、无重复三位数
/*
有1、2、3、4,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
*/
[self threeInt];
} //水仙花 数字
-(void)Narcissus{ int i,j,k,n;
for (n=; n<; n++) {
//分解出百位
i = n/;
//分解出十位
j = n/%;
//分解出个位
k = n%;
if (i*+j*+k == i*i*i+j*j*j+k*k*k) {
NSLog(@"%d",n);
}
}
} -(void)PositiveInt:(int)n{ int i;
for (i=; i<n; i++) {
while (n!=i) {
if (n%i == ) {
NSLog(@"%d",i);
n = n/i;
}else{
break;
}
}
}
NSLog(@"%d",n);
} -(int)peach:(int)n{ int day = n-,x1 = ,x2 = ;
while (day>) { //第一天的桃子数是第2天桃子数加1后的2倍
x1 = (x2 + )*;
x2 = x1;
day--;
}
return x1;
} -(float)molecule:(int)n{ int i,j,number = n;
float a = ,b = ,s = ;
for (i=; i<=number; i++) { s = s+a/b;
j = a;
a = a+b;
b = j;
}
return s;
}
/*
*
***
*****
*******
*****
***
*
*/
//打印菱形
-(void)diamond:(int)n{ for (int i = ; i<=n; i++) {
for (int j = ; j<=n-i; j++) {
printf(" ");
}
for (int k = ; k<=*i-; k++) {
printf("*");
}
printf("\n");
}
for (int i= ; i<=; i++) { for (int j = ; j<=i; j++) {
printf(" ");
}
for (int k = ; k<=*n--*i; k++) {
printf("*");
}
printf("\n");
}
} -(void)threeInt{ NSMutableArray * arr = [[NSMutableArray alloc]init];
for (int i = ; i<; i++) {
for (int j = ; j<; j++) {
for (int k = ; k<; k++) {
if (i!=k && i!=j && j!=k) {
//确保i、j、k三位互不相同
// NSLog(@"%d,%d,%d",i,j,k);
[arr addObject:[NSString stringWithFormat:@"%d%d%d",i,j,k]];
}
} }
}
NSLog(@"四个数组合三位数:%@",arr);
} -(NSMutableArray*)sortArrBig:(NSMutableArray*)arr{ //个数-1 次循环
for (int j = ; j<arr.count - ; j++) {
//比较前后两个值大小
for (int i = ; i<arr.count-; i++) {
//前后值互换
if (arr[i] > arr[i+]) {
id small = arr[i];
arr[i] = arr[i+];
[arr replaceObjectAtIndex:i+ withObject:small];
}
}
}
return arr;
} //函数就是用来求和的 1+++到某个数的和
-(int)sum:(int)n{ if (n<=){return-;}
else if (n==){return ;}
else {return [self sum:n-] +n;}
} //黄金分割数列,又称斐波那契数列
//1,1,2,3,5,8,13,21,34 -(int)gold:(int)n{ if (n<=) return -;
if (n==||n==) return ;
else return [self gold:n-]+ [self gold:n-];
} @end
ios-简单算法的更多相关文章
- iOS 简单工厂模式
iOS 简单工厂模式 什么是简单工厂模式? 简单工厂模式中定义一个抽象类,抽象类中声明公共的特征及属性,抽象子类继承自抽象类,去实现具体的操作.工厂类根据外界需求,在工厂类中创建对应的抽象子类实例并传 ...
- CPD轮播广告库的简单算法
在广告的领域中,有一种广告形式,采用的是CPD的售卖模式,为了对流量进行拆分,媒体方会对广告位进行轮播拆分.比如一个广告位,被拆成了10轮播,那么在广告主来预订广告位的时候,这个时候就可以告诉广告主, ...
- iOS 简单引导界面
代码地址如下:http://www.demodashi.com/demo/11607.html 前言 现在很多APP在用户第一次用的时候,由于用户可能并不知道其中一些功能点的时候,这个时候就需要我们来 ...
- php实现简单算法2
php实现简单算法2 去弄php手册,里面有数据结构,有数据结构就好办了,我的算法基础那么好. 而且的话有数据结构的话再配合我脑中的那些算法了,我就都ok啦. 在手册里面搜索php数据结构就好 路径如 ...
- php实现简单算法1
php实现简单算法1 <? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) functio ...
- php实现简单算法3
php实现简单算法3 这篇文章主要介绍了PHP经典算法集锦,整理了各种常见的算法,包括排序.查找.遍历.运算等各种常见算法原理与实现技巧,需要的朋友可以参考下 1.首先来画个菱形玩玩,很多人学C时在书 ...
- php求和为s的两个数字(多复制上面写的代码,有利于检查错误)(由浅入深,先写简单算法,做题的话够用就行)
php求和为s的两个数字(多复制上面写的代码,有利于检查错误)(由浅入深,先写简单算法,做题的话够用就行) 一.总结 1.多复制上面写的代码,有利于检查错误 2.一层循环就解决了,前后两个指针,和大了 ...
- 【线性表基础】基于线性表的简单算法【Java版】
本文描述了基于线性表的简单算法及其代码[Java实现] 1-1 删除单链表中所有重复元素 // Example 1-1 删除单链表中所有重复元素 private static void removeR ...
- 一个简单算法题引发的思考<DNA sorting>(about cin/template/new etc)
首先是昨天在北京大学oj网上看到一个简单的算法题目,虽然简单,但是如何完成一段高效.简洁.让人容易看懂的代码对于我这个基础不好,刚刚进入计算机行业的小白来说还是有意义的.而且在写代码的过程中,会发现自 ...
- EmguCV学习——简单算法 差分与高斯
公司项目需要检测运动物体,我对opencv也没啥研究,google了好久看了好多方法,最简单的就是差分与高斯背景建模了. 旁边搞c++的同事正在搞更nb的算法,等出来了 我再转成C#版的分享. 先看差 ...
随机推荐
- 文字排版--斜体(font-style)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- C#模拟POST提交表单(二)--HttpWebRequest以及HttpWebResponse
上次介绍了用WebClient的方式提交POST请求,这次,我继续来介绍用其它一种方式 HttpWebRequest以及HttpWebResponse 自认为与上次介绍的WebClient最大的不同之 ...
- hadoop 分片与分块,map task和reduce task的理解
分块:Block HDFS存储系统中,引入了文件系统的分块概念(block),块是存储的最小单位,HDFS定义其大小为64MB.与单磁盘文件系统相似,存储在 HDFS上的文件均存储为多个块,不同的是, ...
- 扩展欧几里得算法(extended Euclidean algorithm)的一个常犯错误
int exGcd(int x,int y,int& a,int& b) //ax+by=gcd(x,y) { ; b=; return x; } int res=exGcd(y,x% ...
- WebDriverWait自定义等待事件
1. webDriverWait自定义WebElement类事件 public WebElement waitForElementVisible(WebDriver driver,final By l ...
- 基于jQuery 的图片瀑布流实现
解题思路: 第1步 分析问题:我这边的处理方式是以列为单位.每次滚动条滚到底部,把需要加的新的内容放在高度最小的列.如下图所示 加载后的显示 如果在继续往下滚动.新图片就会在1下边显示,如此类推. ...
- JSP语法
第3章 JSP语法 [本章专家知识导学] JSP是建立在Java语言基础上的一种Web程序设计语言,具有自己特有的用法和指令.本章首先介绍JSP页面的程序结构,然后讲述JSP程序中经常用到基本的面向 ...
- 【深入浅出jQuery】源码浅析2--使用技巧
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
- Unity3D内存释放
Unity3D内存释放 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resourc ...
- Qt中暂停线程的执行(利用QMutex,超级简单明了)
在线程中定义一个信号量: QMutex pause;把run()函数中循环执行的部分用信号量pause锁住: void run() { while(1) { pause.lock(); //循环执行的 ...