北大演算法試卷
⑴ 用北大演算法算GPA,除了給出的幾個分數有對應的績點,中間的其他分數呢,如84分對應多少績點
成績 績點   成績 績點   成績 績點   成績 績點   成績 績點   成績 績點  
60 1   61 1.15   62 1.29   63 1.43   64 1.57   65 1.7  
66 1.83   67 1.96   68 2.08   69 2.2   70 2.31   71 2.42  
72 2.53   73 2.63   74 2.73   75 2.83   76 2.92   77 3.01  
78 3.09   79 3.17   80 3.25   81 3.32   82 3.39   83 3.46  
84 3.52   85 3.58   86 3.63   87 3.68   88 3.73   89 3.77  
90 3.81   91 3.85   92 3.88   93 3.91   94 3.93   95 3.95  
96 3.97   97 3.98   98 3.99   99 4   100 4        
若以欄位計算成績(優秀,良好,及格和不及格屬於同一評定標准; 合格與不合格屬於同一評定標准):
if(成績="優秀") then 績點=4
elseif (成績="良好") then 績點=3
elseif (成績=「及格」) then 績點=1 
elseif (成績="不及格") then 績點=0 
if (成績="合格") then 績點=4 
elseif (成績="不合格") then 績點=0 
註:對於07級及之後年級,考察課程(判斷標准:除了體育課之外給予「合格」評價的課程)成績不列入GPA統計。
學分績點的計算:�
1.一門課程的學分績點=績點×學分數�
2.學年或總評學習績點=所學課程學分績點之和÷所學課程學分之和
例如,兩門課學分分別為2和3,績點分別為3.7和4.0,
那麼平均績點為(3.7*2+3*4.0)/(2+3)。
⑵ 北大ACM1002題
while(cin >> b) 
{ 
if(b != '\n') //這句話好像沒起到作用 
你換成這樣:
while(b = _getch()) 
{ 
if(b != '\r')
⑶ 北大ACM題庫1061題,我怎麼老是Time Limit Exceeded
正確的演算法就是輾轉相除法求最大公因子。注意這里數字比較大,所以應該使用64位整數。輾轉相除法,即擴展歐幾里德演算法(Extended Euclidean algorithm),上網找找,或去看數學書。
⑷ 北大ACM2509題這樣做為什麼不對為什麼總是 Output Limit Exceeded 求高手指正
這樣就不OLE了。不過演算法是錯的。所以WA
#include <stdio.h>
int sum(int n,int k);
int main()
{
	int n,k,s;	
	while(scanf("%d%d",&n,&k)==2)
	{
		s=sum(n,k);
		printf("%d\n",s);	
	}	
}
int sum(int n,int k)
{
	if(n/k==0)
		return n;
	else
		return(n+sum(n/k,k));
} 
// 正確解法
#include <stdio.h>
int main()
{
	int n,k,s,t;
	while(scanf("%d%d",&n,&k)==2)
	{
		s=n;
		t=n;
		while(t>=k)
		{
			s+=t/k;
			t = t - t/k*(k-1);
		}
		printf("%d\n",s);	
	}	
}
⑸ 北大acm第1003道
你的代碼從主函數開始就不符合POJ規范,這份代碼可以AC,希望對你有幫助。
#include<stdio.h>
int main()
{
 double c,cc;
 int n,i;
 while(scanf("%lf",&c) && c>1e-3)
 {
  cc = 0;
  for (i = 0; cc < c; i++, cc += 1.0/(i+1));
  printf("%d card(s)\n",i);
 }
 return 0;
}
⑹ 北大acm1091演算法:跳騷問題
找出M中除1和M本身的質數 , 結果為 M^N - ( M / 質數) ^N -  ( M / 質數) ^N - .... ( M / 質數) ^N
其中 「質數」為所有質數中的一個,   要從M^N 依次減掉每一個質數的 ( M / 質數) ^N
