#include <iostream> #include <vector> using namespace std; void Matrix(vector<vector<int>> A, vector<vector<int>> B) { vector<vector<int>> C; int SIZE; if (A[0].size() > B[0].size()) SIZE = A[0].size(); else SIZE = B[0].size(); for (int i = 0; i < SIZE; i++) { vector<int> Temp; Temp.resize(SIZE); C.push_back(Temp); } int ARow = 0; int ACol = 0; int BRow = 0; int BCol = 0; int CRow = 0; int CCol = 0; int Sum = 0; while (true) { Sum += A[ARow][ACol++] * B[BRow++][BCol]; if (BRow > A[0].size() - 1) { if (CCol > C[0].size() - 1) { CCol = 0; CRow++; } C[CRow][CCol++] = Sum; Sum = 0; BCol++; BRow = 0; ACol = 0; } if (BCol > B[0].size() - 1) { ACol = 0; ARow++; BRow = 0; BCol = 0; } if (ARow > B[0].size() - 1) break; } for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { cout << C[i][j] << " "; } cout << endl; } } int main() { int N, M; cin >> N >> M; vector<vector<int>> A; vector<vector<int>> B; for (int i = 0; i < N; i++) { vector<int> Temp; Temp.resize(M); A.push_back(Temp); for (int j = 0; j < M; j++) { cin >> A[i][j]; } } cin >> M >> N; for (int i = 0; i < M; i++) { vector<int> Temp; Temp.resize(N); B.push_back(Temp); for (int j = 0; j < N; j++) { cin >> B[i][j]; } } Matrix(A, B); return 0; }
# include < iostream > # include < vector > using namespace std ; int main ( ) { vector < int > Stick ; Stick . push_back ( 64 ) ; int Target ; cin > > Target ; int Last = 0 ; while ( true ) { if ( Target = = 64 ) break ; int Sum = 0 ; for ( int i = 0 ; i < Stick . size ( ) ; i + + ) Sum + = Stick [ i ] ; if ( Target = = Sum ) break ; else if ( Target < Sum ) { Stick [ Last ] / = 2 ; Sum = 0 ; for ( int i = 0 ; i < Stick . size ( ) ; i + + ) Sum + = Stick [ i ] ; if ( Target < = Sum ) continue ; else Stick . push_back ( Stick [ Last + + ] ) ; } } cout < < Stick . size ( ) ; ...
댓글
댓글 쓰기