#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-简单算法的更多相关文章

  1. iOS 简单工厂模式

    iOS 简单工厂模式 什么是简单工厂模式? 简单工厂模式中定义一个抽象类,抽象类中声明公共的特征及属性,抽象子类继承自抽象类,去实现具体的操作.工厂类根据外界需求,在工厂类中创建对应的抽象子类实例并传 ...

  2. CPD轮播广告库的简单算法

    在广告的领域中,有一种广告形式,采用的是CPD的售卖模式,为了对流量进行拆分,媒体方会对广告位进行轮播拆分.比如一个广告位,被拆成了10轮播,那么在广告主来预订广告位的时候,这个时候就可以告诉广告主, ...

  3. iOS 简单引导界面

    代码地址如下:http://www.demodashi.com/demo/11607.html 前言 现在很多APP在用户第一次用的时候,由于用户可能并不知道其中一些功能点的时候,这个时候就需要我们来 ...

  4. php实现简单算法2

    php实现简单算法2 去弄php手册,里面有数据结构,有数据结构就好办了,我的算法基础那么好. 而且的话有数据结构的话再配合我脑中的那些算法了,我就都ok啦. 在手册里面搜索php数据结构就好 路径如 ...

  5. php实现简单算法1

    php实现简单算法1 <? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) functio ...

  6. php实现简单算法3

    php实现简单算法3 这篇文章主要介绍了PHP经典算法集锦,整理了各种常见的算法,包括排序.查找.遍历.运算等各种常见算法原理与实现技巧,需要的朋友可以参考下 1.首先来画个菱形玩玩,很多人学C时在书 ...

  7. php求和为s的两个数字(多复制上面写的代码,有利于检查错误)(由浅入深,先写简单算法,做题的话够用就行)

    php求和为s的两个数字(多复制上面写的代码,有利于检查错误)(由浅入深,先写简单算法,做题的话够用就行) 一.总结 1.多复制上面写的代码,有利于检查错误 2.一层循环就解决了,前后两个指针,和大了 ...

  8. 【线性表基础】基于线性表的简单算法【Java版】

    本文描述了基于线性表的简单算法及其代码[Java实现] 1-1 删除单链表中所有重复元素 // Example 1-1 删除单链表中所有重复元素 private static void removeR ...

  9. 一个简单算法题引发的思考<DNA sorting>(about cin/template/new etc)

    首先是昨天在北京大学oj网上看到一个简单的算法题目,虽然简单,但是如何完成一段高效.简洁.让人容易看懂的代码对于我这个基础不好,刚刚进入计算机行业的小白来说还是有意义的.而且在写代码的过程中,会发现自 ...

  10. EmguCV学习——简单算法 差分与高斯

    公司项目需要检测运动物体,我对opencv也没啥研究,google了好久看了好多方法,最简单的就是差分与高斯背景建模了. 旁边搞c++的同事正在搞更nb的算法,等出来了 我再转成C#版的分享. 先看差 ...

随机推荐

  1. 258. Add Digits(C++)

    258. Add Digits Given a non-negative integer num, repeatedly add all its digits until the result has ...

  2. Android界面布局学习总结

    参考文章: http://blog.csdn.net/shakespeare001/article/details/7843460 http://www.cnblogs.com/w-y-f/p/412 ...

  3. 使用Qt创建第一个OpenCV的Gui应用

    写在前面 学习OpenCV有一些小日子了,发现群里还有很多初学OpenCV的人像我当初一样跌跌撞撞到处找资料,所以在这里把学习笔记分享给大家,希望有志学习OpenCV进行计算机视觉活动的小伙伴们能少走 ...

  4. 使用require.js时,解决AMD封装jquery1.4.1的问题。

    require.config({ baseUrl: "js/", paths: { "jquery": "jquery-1.4.1.min" ...

  5. Oauth认证简介

    Oauth是什么: 1.Oauth是一种安全认证的协议: 2.Oauth为用户资源的授权提供了一个安全的.开放而又简易的标准: 3.Oauth的授权不会使第三方触及到用户的账号信息(用户名和密码). ...

  6. HTML5-黑客帝国2D

    <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>& ...

  7. window 配置 sendmail

    从http://glob.com.au/sendmail/下载sendmail.zip 解压sendmail.zip到目录下(最好使用短路径,长路径会导致问题的出现),我安装的路径是: E:\wamp ...

  8. JavaScript 获取Select标签选中的项

    <select name="select1" id="select1" onchange=setInput()> <option value= ...

  9. Android 即时语音聊天工具 开发

    使用融云SDK 1. 功能需求分析 1.1 核心功能需求: * 即时通讯 * 文字聊天 * 语音聊天 1.2 辅助功能需求: * 注册.登录 * 好友添加功能 * 好友关系管理 2. 融云即时通讯平台 ...

  10. 在linux下实现UBOOT的TFTP下载功能

    一.环境 1.条件 软件:虚拟机下linux(本文涉及到的是Ubuntu12.0.4). linux下的串口助手(例如minicom)或windows下的串口助手(例如超级终端.SecureCRT) ...