演算法程式設計題 iOS

2021-07-25 19:28:56 字數 3709 閱讀 5263

1. 程式設計題:假設某乙個生物每b年繁殖一次,一次繁殖n只,壽命是m年,編寫程式起初有x只生物,求t年之後生物的總數是多少?

@inte***ce

animal ()

/** 假設某乙個生物每b年繁殖一次,一次繁殖n只,壽命是m年,編寫程式起初有x只生物,求t年之後生物的總數是多少?

@param originalcount 起初x只生物

@param yearstobreed 每b年繁殖一次

@param countperbreed 一次繁殖n只

@param limitage 壽命m年

@param totalyears t年之後

*/- (void)solveplanwithoriginalcount:(nsinteger)originalcount yearstobreed:(nsinteger)yearstobreed countperbreed:(nsinteger)countperbreed limitage:(nsinteger)limitage totalyears:(nsinteger)totalyears;

/** 新增一定數量的animal物件到陣列

@param number 數量

*/- (void)addanimaltoarraywithnumber:(nsinteger)number;

@property (nonatomic, strong) nsmutablearray *arr;//存放物件的陣列

@property (nonatomic, assign) nsinteger age;//年齡

@end

@implementation

animal

- (void)solveplanwithoriginalcount:(nsinteger)originalcount yearstobreed:(nsinteger)yearstobreed countperbreed:(nsinteger)countperbreed limitage:(nsinteger)limitage totalyears:(nsinteger)totalyears

//出生年

if (animal.age >= yearstobreed)}}

if (year == (totalyears-1))

nslog(@"第%zd年-->%.2zd只", year+1, _arr.count);

}nslog(@"假設某乙個生物每%zd年繁殖一次,一次繁殖%zd個只,壽命是%zd年,編寫程式起初有%zd只生物,求%zd年之後生物的總數是%zd!", yearstobreed, countperbreed, limitage, originalcount, totalyears, _arr.count);

}- (void)addanimaltoarraywithnumber:(nsinteger)number

}@end

2. 有m個數,從中取出n個不相同的數
/**

有m個數,從中取出n個不相同的數

@param randomcount m個數

@param numcount n個數

@param mincount 隨機數最小值

@param maxcount 隨機數最大值

*/- (void)solveplanwithrandomcount:(nsinteger)randomcount togetnumcount:(nsinteger)numcount mincount:(nsinteger)mincount maxcount:(nsinteger)maxcount

//獲取

for (int j = 0; j < numcount; j++)

else

}}/**

獲取一定範圍的隨機數

@param minnum 最小值

@param maxnum 最大值

*/- (nsstring *)getrandwithmin:(nsinteger)minnum andmax:(nsinteger)maxnum

3. 假如電子記時器所顯示的十個數字是「0126093028」這樣一串數,它表示的是1月26日9時30分28秒.在這串數里,「0」出現了3次,「2」出現了2次,「1」、「3」、「6」、「8」、「9」各出現1次,而「4」、「5」、「7」沒有出現.如果在電子記時器所顯示的這串數里,「0,1,2,3,4,5,6,7,8,9」這乙個數字都只出現一次,稱它所表示的時刻為「十全時」那麼2023年一共有( )個這樣的「十全時?
ps:演算法完善列印每個十全時

- (void)get2003 

//二維陣列建立

nsmutablearray *dayarr = [nsmutablearray array];

for (int i = 0; i < 13; i++)

//初始化二維陣列

for (int i = 0; i < dayarr.count; i++)

else }}

//得到前四位數的組合

for (int i = 0; i < dayarr.count; i++)

}//第二次篩選出結果

if ([[dayarr[i] objectatindex:j] isequaltovalue:@1])

//六位陣列

nsmutablearray *sixarray = [nsmutablearray arraywithobjects:@"0", @"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9",nil];

[sixarray removeobjectsinarray:arr];

//六位字串

nsstring *sixstr = [nsstring string];

for (nsstring *str in sixarray)

//判斷六位數小於6的個數

int lesssixcount = 0;

for (int p = 0; p < sixarray.count; p++)

//判斷有沒有1,或2

if (lesssixcount >= 3)

}else

}else

if ([sixstr containsstring:@"2"]) }}

}}

}nslog(@"2023年有%i個十全時", result);

}/**

* 判斷四位數是否中是否重複或者同時包含0,1,2

* 不滿足條件返回no

*/- (bool)validatestring:(nsstring *)str

for (int k = 0; k < str.length; k++)

}return

yes;

}/**

* int型別轉換固定字串,例子:1->01

*/- (nsstring *)inttostring:(int)intval

/** * 得到月日四位數

*/- (nsstring *)getpre4stringwithstring:(nsstring *)monthstr daystring:(nsstring *)daystr

/** * 獲得某年某月的天數

*/- (nsinteger)howmanydaysinthisyear:(nsinteger)year withmonth:(nsinteger)month

iOS演算法題

1兔子演算法題 兔子可以跳一步2步或者3步,問跳到100有多少種跳法?兔子可以跳一步2步或者3步 問跳到100有幾種跳法 分析1 兩個變數,x 2 y 3 100.x最大為50,x最小為2 y最大為32.最小為0 分析2 某個情景分析 假設x 35,y為10時,雖然知道了數量,但是兔子的35小步,和...

程式設計題 壓縮演算法

時間限制 c c 2秒,其他語言4秒 空間限制 c c 256m,其他語言512m 小q想要給他的朋友傳送乙個神秘字串,但是他發現字串的過於長了,於是小q發明了一種壓縮演算法對字串中重複的部分進行了壓縮,對於字串中連續的m個相同字串s將會壓縮為 m s m為乙個整數且1 m 100 例如字串abca...

窮舉演算法「程式設計題」

窮舉演算法依賴計算機的強大計算能力,來窮盡每一種可能的情況,從而達到求解問題的目的。窮舉演算法效率不高,但是適合一些沒有明顯規律可循的場合。對於一種可能的情況,計算其結果。判斷結果是否滿足要求,如果不滿足則執行第1條來搜尋下乙個可能的情況 如果滿足要求,則表示尋找到乙個正確答案。在使用窮舉演算法時,...