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#版的分享. 先看差 ...
随机推荐
- EMA计算的C#实现(c# Exponential Moving Average (EMA) indicator )
原来国外有个源码(TechnicalAnalysisEngine src 1.25)内部对EMA的计算是: var copyInputValues = input.ToList(); for (int ...
- Visual Studio 2013 在使用 MVC5 无智能提示
关于 Visual Studio 2013 在使用 MVC5 无智能提示的问题,类库无法正常识别,连最基本的关键字提示都没有了,类变色也没有了,所有的关键字代码,类名,方法成员名都要全部手动敲 原因: ...
- Bootstrap_表单_表单控件状态
一.焦点状态 焦点状态是通过伪类“:focus”来实现.Bootstrap框架中表单控件的焦点状态删除了outline的默认样式,重新添加阴影效果. <form role="form& ...
- Html5的<button>标签
1.标签是双标签,其内可添加文字,图片等复杂的样式. 2.不仅可以在表单中使用,还可以在其他块元素和内联元素中使用. 3.一般在input标签内添加name属性,否则提交后不显示.
- js以json形式提交数据,后台接受
$("#savename").click(function(){ var fananname=$("#editname").val(); var jsonLis ...
- Android 之夜间模式(多主题)的实现
引言 夜间模式其实属于多主题切换的一种,不过是最麻烦的一种.因为在夜间模式下不仅要切换主色调,次要色调等等,还要覆盖一些特殊的颜色,因为在夜间模式下总不能什么都是黑的把,那不得丑死-.-,所以当你夜间 ...
- WinPcap编程(一)
0. 按着文档顺序写的. 开发环境:win10+VS2013. 配置WinPcap环境就不多说.直接给网址:http://blog.sina.com.cn/s/blog_57432f380101qh3 ...
- test about cnblog
there is nothing here. This is only a test about cnblog!
- Cordova VS React Native 谁是未来? - b
对于原生native还是倍加推崇的,极佳的用户体验和性能让我学的如痴如醉,可是互联网这个世界可以用一句话可以总结:没有什么是不可能的.自从阿里淘宝天猫横空出世,它们教会了人们如何在网上购物,然后仿佛一 ...
- BS_OWNERDRAW风格的作用和例子,值得研究~
TBitBtn就是一个例子: procedure TBitBtn.CreateParams(var Params: TCreateParams); begin inherited CreatePara ...