史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   怎麼用C做 dive&conquer的 超長整數運算 (http://forum.slime.com.tw/thread221609.html)

rang0419 2007-12-05 12:23 PM

怎麼用C做 dive&conquer的 超長整數運算
 
要怎麼"讀文字檔"...


又要運用到dive and conquer

然後 做128位數*128位數的 矩陣相乘 @@"



暈了我..........:on_77:

mini 2007-12-05 02:21 PM

一個讀檔示範
從 test.txt 讀出兩個字串
並轉成數值變數後作乘法運算
語法:

#include <iostream>
#include <fstream>

using namespace std;

ifstream infile;  //宣告一個file物件
//也可試試 File infile;

void read_line(char string[]) {
  int i=0;

  do {
    string[i] = (char)infile.get();
    i++;
  } while ((string[i-1] != '\n') && infile.good());
  string[i-1] = '\0';
}

//接著是 main主體
int main () {
  char b1[255];//*b1; //宣告b1字串
  char b2[255];//*b2; //宣告b2字串
  char ch[]={'0','\0'}, temp[255];
  int i;
 
  //開啟 test.txt 檔案 : void open ( const char * filename, openmode mode = in );
  infile.open("test.txt");
  //讀第一行到字串b1中
  read_line(b1);

  //讀第二行到字串b2中
  read_line(b2);

  //輸入取第幾個字元當乘數
  printf("被乘數是[ %s ],請從[ %s ]選第n個數當乘數:", b1, b2);
  scanf("%s", temp);
  ch[0] = b2[atol(temp)-1]; //atol是將字串轉成 long型態
  //輸出結果
  printf("%s * %s = %ld \n", b1, ch, atol(b1)*atol(ch));
 
  infile.close(); //關閉檔案
  system("PAUSE");
  return 0; //main 是一個函式要傳出一個值
}

test.txt 的內容是
語法:

12345
345

執行結果
語法:

被乘數是[ 12345 ],請從[ 345 ]選第n個數當乘數:2
12345 * 4 = 49380
請按任意鍵繼續 . . .

以上選用 345的第二個字元 "4" 當乘數
得到積為 49380

至於什麼 "矩陣相乘"
怎麼乘早忘了
所以 以上請自行修改應用

rang0419 2007-12-05 03:54 PM

不好意思 我想請問一下


divide and coonquer 的應用 在哪裡到哪裡呢@@?

mini 2007-12-05 07:10 PM

引用:

作者: rang0419 (文章 1855209)
不好意思 我想請問一下


divide and coonquer 的應用 在哪裡到哪裡呢@@?

裡面沒有這個東西的應用...

上面只有教你如何讀檔及運算
建議您自己試著利用現有的東西實作看看
個人無能力
把答案都寫的出來

rang0419 2007-12-05 10:17 PM

ㄏㄏㄏ ~~~


哪裡 你比我厲害多了............我都不會 囧a


至少我知道怎麼讀檔了 在加上我之前問的大數相乘 就差不多了.......




不過只有一種版本ˊˋ"

1.一個是用暴力解法<= 差不多了

2.一個要用 (分割 克服)還是叫做(個個擊破)@@" <=不知該怎麼用 ˊˋ


所有時間均為台北時間。現在的時間是 04:31 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1