這裡先說一下整數的資料範圍:
int:32位 -2147483648~2147483647。
long long 64位 9223372036854775807
unsigned long long 64位 18446744073709551615 一般在hash的時候用,溢位就相當於取模了
__int128 128位 相對於longlong位數變為原來的2倍了
通過這個函式就可以看出 ll 占用 8個位元組 __128占用 16個位元組
斐波那契的矩陣運算
1303. 斐波那契前 n 項和
大家都知道 fibonacci 數列吧,f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2。
現在問題很簡單,輸入 nn 和 mm,求 fnfn 的前 nn 項和 snmodmsnmodm。
輸入格式
共一行,包含兩個整數 nn 和 mm。
輸出格式
輸出前 nn 項和 snmodmsnmodm 的值。
資料範圍
1≤n≤20000000001≤n≤2000000000,
1≤m≤10000000101≤m≤1000000010
輸入樣例:
5 1000
輸出樣例:
12
code:
#include#includeusing namespace std;
typedef long long ll;
const int n = 3;
int n, m;
void mul(int c,int a,int b[n]);
for(int j = 0;j < n; j ++)
}//都改變完了在改變f陣列
memcpy(c, temp, sizeof temp);
}void mul(int c[n],int a[n], int b[n]);//初始化
for(int i =0 ;i < n; i ++)}}
memcpy(c, temp, sizeof temp);
}int main()
; int a[n][n] = ,,};
n --;
while(n)
cout << f[2] << endl;
return 0;
}
計算矩陣乘法
線性代數特別不好算,用程式解決繁瑣的事,電腦最喜歡幹的事就窮舉。比如計算 3行4列矩陣乘以4行5列矩陣。展示 include define m 3 define n 4 define l 5 intmain printf 輸入3行4列矩陣 12個數 n for i 0 iprintf 輸入4行5列矩...
計算矩陣運算的乘法次數
描述 矩陣乘法的運算量與矩陣乘法的順序強相關。例如 a是乙個50 10的矩陣,b是10 20的矩陣,c是20 5的矩陣 計算a b c有兩種順序 ab c 或者 a bc 前者需要計算15000次乘法,後者只需要3500次。編寫程式計算不同的計算順序需要進行的乘法次數 知識點 字串 內部整理 練習階...
矩陣乘法(冪次計算)
給定乙個n階矩陣a,輸出a的m次冪 m是非負整數 例如 a 1 23 4 a的2次冪 7 10 15 22 第一行是乙個正整數n m 1 n 30,0 m 5 表示矩陣a的階數和要求的冪數 接下來n行,每行n個絕對值不超過10的非負整數,描述矩陣a的值輸出 output輸出共n行,每行n個整數,表示...