演算法問題
1. 求助演算法問題
留個腳印..
沒看清題..-.-不用截...
先對S排序
對於S的元素a0,a1,a2...an進行查詢
取x=a0,y=an,
如果x+y>z,y=a(n-1),
如果x+y<z,x=a1.
即從兩邊向中間查詢
如此直到兩數和為z(結果),或者讀取的兩個數相等(無結果).
2. hannoi演算法問題
可以用遞歸的方式。
假設有3跟柱子A,B,C,需要把A柱子上的n個盤子全部搬到C柱子上。
分三步走:1.把n-1個盤子搬到B柱子上,2.把第n個盤子搬到C柱子上,3.把B柱子上的n-1個盤子搬到C柱子上。
函數可以這樣:
void Hannoi(int n,char A,char B,char C)
{
if(n==1)
Move(1,A,C);
else
{
Hannoi(n-1,A,C,B);
Move(n,A,C);
Hannoi(n-1,B,A,C);
}
}
3. C語言演算法問題
這不是所有演算法都必須的,是它這種演算法的邏輯需要——當n是素數時一旦i*i>=n,就到i<n的判斷處了,由於i<n,所以認為n是素數並輸出,進入n+1判斷下一個數是不是素數;但如果n不是素數,那麼前面設置了一個i=n作記號,這時返回去i*i>=n了,也要跳到i<n的判斷處,但這時由於i==n而不認為n是素數就不輸出且直接進入n+1判斷下一個數……所以你完全可以設計一個演算法不要i<n的判斷。這里只是為了與前面檢測出n不是素數後設置的i=n這個記號相呼應的邏輯需要!
4. 計算機演算法問題
這個最短平均排隊時常其實就是要求大家等待的時間越短越好。從題目上看好像只有一個人來服務這n個人,所以如果希望大家等待的時間短的話,就應該將服務時間最長的人拍在最後,然後將服務時長第二長的排在倒數第二位...
如果要做演算法就可以將服務時長作為權重,權重越大就排隊越靠後。
5. 一個演算法問題
整個程序其實就是個求和
可以改寫為
s=0;
for(l=1;l<=100;l++){
s=s+l^2;
}
system.out.println(s);
整個程序其實是求 1^2 +2^2 +3^2 +...+100^2 ,即 1 到 100 的平方和
6. 演算法的問題
著不是很簡單的一段C語言嘛,循環三次,每次循環過程中,要求出入一個字元,循環完成後,然後退出運行。。。。
你追問哪個是輸出輸入輸出字元串的,那個#include<math.h>沒必要包含,你知道這些庫文件的作用嗎??
7. 關於計算機演算法問題
是這樣 把思路轉化為演算法 然後化為程序語言(有各種的程序語言) 然後用特定的編譯器執行語言 最後就是你看到的了