2014年2月22日 星期六
水手分錢(三個水手問題)
/*
g[n]=81n-2
*/
#include <iostream> using namespace std; int take(int money, int numOfSailor, int remaining){ if (money%numOfSailor==remaining) return (money-remaining)/numOfSailor*(numOfSailor-1); else return 0; } int main(){ int n,m,p,r; cin >> n >> m >> p >> r; for (int i=n;i<=m;i++){ int money = i; for (int j=0;j<=p;j++){ if (money) {money=take(money,p,r);} else{break;} } if (money){ cout << i; break; } } system("pause"); return 0; }
2014年2月21日 星期五
列出小於或等於n的質數, n<=100
#include <iostream> using namespace std; int main(){ int primes[]={2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97}; int n; cin >> n; for (int i=0;i<25;i++){ if (primes[i]<=n){ cout << primes[i] << ' '; } else{ break; } } system("pause"); }
2014年2月15日 星期六
Pyramid: Luke
Preview (hint: you can copy and paste the preview into Microsoft Word):#include <iostream> #include <iomanip> #include <string> #include <cmath> #include <set> using namespace std; int main() { int n; cin>>n; int size=n*2-1;//正方形邊長 int *roll;//長 roll=new int[size]; int *colomn;//長 colomn=new int[size]; int p=1;//roll中的值 for(int i=0;i<size;i++){//在陣列中存放每一列最大的數(3=>1 2 3 2 1) if(i>=n-1){ roll[i]=p; p--; } if(i<n-1){ roll[i]=p; p++; } } for(int i=0;i<size;i++){//複製 colomn[i]=roll[i]; } int map[100][100]; for(int i=0;i<size;i++){ for(int j=0;j<size;j++){ map[i][j]=roll[i]; } } for(int i=0;i<size;i++){ for(int j=0;j<size;j++){ if(map[i][j]>colomn[j]){ map[i][j]=colomn[j]; } } } for(int i=0;i<size;i++){ for(int j=0;j<size;j++){ cout<<map[i][j]; } cout<<endl; } system("Pause"); } |
Pyramid
Sample Input
4
Sampel Output
1 1 1 1 1 1 1
1 2 2 2 2 2 1
1 2 3 3 3 2 1
1 2 3 4 3 2 1
1 2 3 3 3 2 1
1 2 2 2 2 2 1
1 1 1 1 1 1 1
#include <iostream>
#include <cmath>
using namespace std;
int f(int i,int j,int N){
return min(i<=N?i:N-abs(N-i),j<=N?j:N-abs(N-j));
}
int main(int argc, const char * argv[])
{
int N;
cin >> N;
int M =N*2;
for(int i=1;i<M;i++){
for (int j=1;j<M;j++){
cout << f(i,j,N) << ' ';
}
cout<< endl;
}
return 0;
}
#include <iostream> #include <cmath> using namespace std; int f(int i,int j,int N){ return min(i<N?i:N-abs(N-i),j<N?j:N-abs(N-j)); } int main(int argc, const char * argv[]) { int N; cin >> N; int M =N*2; for(int i=1;i<M;i++){ for (int j=1;j<M;j++){ cout << f(i,j,N) << ' '; } cout<< endl; } return 0; }
訂閱:
意見 (Atom)