[問題] 一個小題目
#include<iostream>
#include<fstream>
using namespace std ;
void main(){
ifstream data("b.txt") ;
char num[100] ;
int spilt ;
int total = 0 ;
int sum = 0 ;
char temp[100] ;
data.getline(num,100,'\n') ;
data >> spilt ;
cout << num << endl << spilt << endl ;
# for(int i=0;i<strlen(num);){
# for(int j=0;j<spilt;j++){
# temp[j] = num[i++] ;
# }
# total += atoi(temp) ;
}
cout << "Ans=" << total << endl ;
}
雜湊(hashing)是用來計算一個鍵值(key value)對應之索引(index)的方法,而「折疊法」
4
是雜湊函數的方法之一,假設有一個鍵值為5120969190600791,而折疊的長度為3,
折疊的計算過程如下,首先鍵值先依照折疊長度加以切割,由於鍵值有16 個數字,每3
個數字進行切割的話,可以切出6 段,如下所示:
512 096 919 060 079 1
接著這些數值進行加總就可以得到所需要的索引1667,如下所示:
512+096+919+060+079+1=1667
所以請撰寫一個程式從b.txt 中讀入兩行資料,第一行是鍵值的字串,第二行是折疊的
長度,接著輸出索引的結果。
範例輸入:
5120969190600791
3
範例輸出:
5120969190600791
3
Ans=1667
##我想問的是#那5行在做什麼
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.162.118.189
→
06/21 19:12, , 1F
06/21 19:12, 1F
推
06/21 19:45, , 2F
06/21 19:45, 2F
→
06/22 00:06, , 3F
06/22 00:06, 3F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章