#include <iostream>
#include <cmath>
#include <iomanip> // output formatting
using namespace std;


unsigned long long fact(int n) {
   if (n < 0) {
   	return 0;
	}
	unsigned long long result = 1;
	for (int i = 1; i <= n; i++) {
   	result *= i;
   }
   return result;
}


int nChooseK(int n,int k){
	return (fact(n)/(fact(k)*fact(n-k)));
}


// print the nth row of Pascal's Triangle
void pascalsTriangleRow(int n){
	double rowterms[100];
	int term = 0;
	// row 0 is just a 1.
	if(n==0){
		cout << "1" << endl;
		cout << "1.0" << endl;
	}else{
		for (int k=0;k<=n;k++){
			cout << nChooseK(n,k) << ",";
			rowterms[term] = nChooseK(n,k)/pow(2,n);
			term++;
		}
		cout << endl;
		for(int i=0;i<=n;i++){
			cout << rowterms[i] << ",";
		}
		cout << endl;
	}
	return;
}


int main(){
	int n;

	cout << "Please enter the number for n (0-99): ";
	cin >> n;
	for(int i=0;i<=n;i++){
		pascalsTriangleRow(i);
	}

	return 0;
}