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條來搜尋下乙個可能的情況 如果滿足要求,則表示尋找到乙個正確答案。在使用窮舉演算法時,...