㈠ 用pascal語言 遞歸的方法求數組中的最大數
var i,n,max:longint;
a:array[0..10000]of integer;
procere find(k:integer(這里的k是尋找到第幾個數的意思));
begin
if k>n then exit;(如果尋找完了,則退出);
if a[k]>max then max:=a[k];
find(k+1);
end;
begin
readln(n);
for i:=1 to n do readln(a[i]);(先讀入數組中的每一個數)
max:=0;(設最大值為0);
find(1);(開始遞歸);
end.
呼~~~~~終於打完了.又簡單又明晰,明白了把!不明白就去問一下老師,偶無能為力了!!
沒有功勞也有苦勞啊,選偶做最佳答案吧!
㈡ c語言 尋找第k大的數
想帶自定義的函數的意思是調用自己定義的函數吧。那就把那個排序部分設置成自己的函數好了。
#include<stdio.h>
#define max 10000
int a[max], n;
void hanshu()
{
int i = 0, j = 0;
for(i=0;i<n-1;i++)//用了冒泡法,變動了一下
{
for(j=0;j<n-i-1;j++)
{
if (a[j]<a[j+1])
{
int p=a[j+1];
a[j+1]=a[j];
a[j]=p;
}
}
}
}
int main()
{
int i,j,b,k;
scanf("%d",&n);
scanf("%d",&k);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
hanshu();
b=a[k-1];
printf("%d\n",b);
return 0;
}
㈢ pascal尋找第k大的數
剛剛才回答完一個大傻瓜1234的的問題,我看你跟他差不多
㈣ 《編程之美》1-n這n個整數里一共有多少個數字1
C可以這么寫:
#include <stdio.h>
#include "stdlib.h"
#include "string.h"
int main(void){
int i,n,d;
char a[11],*p;
printf("Input n(int n>1)...\nn=");
scanf("%d",&n);
for(d=0,i=1;i<=n;i++){
itoa(i,p=a,10);
while(p=strchr(p,'1'))
d++,p++;
}
printf("The result is %d\n",d);
return 0;
}
㈤ 編程之美的作品目錄
第1章游戲之樂——游戲中碰到的題目 1
1.1讓CPU佔用率曲線聽你指揮 3
1.2中國象棋將帥問題 13
1.3一摞烙餅的排序 20
1.4買書問題 30
1.5快速找出故障機器 35
1.6飲料供貨 40
1.7光影切割問題 45
1.8小飛的電梯調度演算法50
1.9高效率地安排見面會 54
1.10雙線程高效下載 59
1.11NIM(1)一排石頭的游戲 64
1.12NIM(2)「拈」游戲分析 67
1.13NIM(3)兩堆石頭的游戲 72
1.14連連看游戲設計 86
1.15構造數獨 91
1.1624點游戲 99
1.17俄羅斯方塊游戲 108
1.18挖雷游戲 116
第2章數字之魅——數字中的技巧 117
2.1求二進制數中1的個數 119
2.2不要被階乘嚇倒 125
2.3尋找發帖「水王」 129
2.41的數目 132
2.5尋找最大的K個數 139
2.6精確表達浮點數 147
2.7最大公約數問題 150
2.8找符合條件的整數 155
2.9斐波那契(Fibonacci)數列 160
2.10尋找數組中的最大值和最小值 166
2.11尋找最近de點對 171
2.12快速尋找滿足條件的兩個數 178
2.13子數組的最大乘積 182
2.14求數組的子數組之和的最大值 185
2.15子數組之和的最大值(二維) 192
2.16求數組中最長遞增子序列 198
2.17數組循環移位 204
2.18數組分割 207
2.19區間重合判斷 211
2.20程序理解和時間分析 215
2.21隻考加法的面試題 217
第3章結構之法——字元串及鏈表的探索 219
3.1字元串移位包含的問題 221
3.2電話號碼對應英語單詞 224
3.3計算字元串的相似度 230
3.4從無頭單鏈表中刪除節點 234
3.5最短摘要的生成 237
3.6編程判斷兩個鏈表是否相交 241
3.7隊列中取最大值操作問題 244
3.8求二叉樹中節點的最大距離 250
3.9重建二叉樹 256
3.10分層遍歷二叉樹 262
3.11程序改錯 268
第4章數學之趣——數學游戲的樂趣 273
4.1金剛坐飛機問題 275
4.2瓷磚覆蓋地板 279
4.3買票找零 282
4.4點是否在三角形內 286
4.5磁帶文件存放優化 291
4.6桶中取黑白球 294
4.7螞蟻爬桿 299
4.8三角形測試用例303
4.9數獨知多少 307
4.10數字啞謎和迴文 315
4.11挖雷游戲的概率 322
㈥ 尋找最大完全數 c語言
//應該是n以內的最大完全數
intmain()
{
intn,k,i,sum;
printf("請輸入一個正整數 ");
scanf("%d",&n);
printf("全部完全數為");
for(i=1;i<=n;i++)
{sum=0;//添加這一行就行了
for(k=1;k<i;k++)
{
if(i%k==0)
sum+=k;
}
if(sum==i)
printf("%d",i);
}
}
㈦ 數據結構(C語言)尋找最大的k個數
先排序(從大到小),再查找,然後輸出第K到第M個數 。排序的演算法,課本上有。查找,你可以定義結構體鏈表。然後查找到第K個數後開始輸出,第M個數停止輸出。
㈧ 求貪心演算法題(Pascal)
《編程之美》裡面有一道買書問題的貪心演算法。
題目是這樣的:
在節假日的時候,書店一般都會做促銷活動。由於《哈利波特》系列相當暢銷,店長決定通過促銷活動來回饋讀者。上櫃的《哈利波特》平裝本系列中,一共有五卷。假設每一卷單獨銷售均需8歐元 。如果讀者一次購買不同的兩卷,就可以扣除5%的費用,三卷則更多。假設具體折扣的情況如下:
本數 折扣
2 5%
3 10%
4 20%
5 25%
在一份訂單中,根據購買的卷數及本數,就會出現可以應用不同折扣規則的情況。但是,一本書只會應用一個折扣規則。比如,讀者一共買了兩本卷一,一本卷二。那麼,可以享受到5%的折扣。另外一本卷一則不能享受折扣。如果有多種折扣,希望計算出的總額盡可能的低。
要求根據以上需求,設計出演算法,能夠計算出讀者所購買一批書的最低價格。
㈨ Matlab/simulink:一個數組 不用排序的方法 找出它當中第K大的數
設置個標志矩陣,先賦值都為1,做k次循環。每次循環,各元素和對應的標志位相乘,找最大的元素和對應位置,並把對應位置的標志位置零,再下次進行下次循環。第k次循環找到的最大數就是第k大的數。
(ps 本來不想貼具體語句的,還是好人做到底吧,呵呵)
a = [2 6 4 3 1 9 5 7 0 8];
flag = ones(size(a));
k = 5;
for j=1:k
[data i] = max(a.*flag);
flag(i) = 0;
end
㈩ 演算法:平衡樹求第k大數 Sm 前段時間剛學會了用快速排序來求一個列中的第 k大數,可是她覺得每次 序列被改變
演算法描述
設第k個數為標准比a[k-1]大的數放到其左邊,比他小的,放到其右邊,其中保持a[k-1]是前k個數中最大的值
#include<iostream>
#include<string>
using namespace std;
int a[10000];
//尋找前k個數中的最大值
int found(int k){
int i;
int max=a[0],flag=0;
for(i=0;i<k;i++)
if(max<a[i]){
max=a[i];
flag=i;
}
return flag;
}
void change(int &a,int &b){
if(a==b)
return;
int t;
t=a;
a=b;
b=t;
}
int main()
{
int n,k,i,flag;
while(cin>>n>>k){
memset(a,0,sizeof(a));
if(k>n)
continue;
for(i=0;i<n;i++)
cin>>a[i];
flag=found(k);
change(a[flag],a[k-1]);
for(i=k;i<n;i++){
if(a[i]<a[k-1]){
change(a[i],a[k-1]);
flag=found(k);
change(a[flag],a[k-1]);
}
}
cout<<a[k-1]<<endl;
}
return 0;
}