শুক্রবার, ২৫ ডিসেম্বর, ২০১৫
Jan's LightOJ :: Problem 1006 - Hex-a-bonacci Solution
/*****************************
* *
* Author: Md. Rana Mahmud *
* r4n4m4hmud.wordpress.com *
* *
*****************************/
#include <cstdio>
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
long long data[100005];
long long a, b, c, d, e, f;
long long fn( long long n )
{
if( n == 0 ) return a;
else if( n == 1 ) return b;
else if( n == 2 ) return c;
else if( n == 3 ) return d;
else if( n == 4 ) return e;
else if( n == 5 ) return f;
else if(data[n]!=-1) return data[n];
else
{
data[n] = ( fn(n-1) + fn(n-2) + fn(n-3) + fn(n-4) + fn(n-5) + fn(n-6) )%10000007;
return data[n];
}
}
int main()
{
long long n, caseno = 0, cases;
cin>>cases;
while( cases-- )
{
memset(data,-1,sizeof(data));
cin>>a>>b>>c>>d>>e>>f>>n;
cout<<"Case "<<++caseno<<": "<<fn(n)%10000007<<endl;
}
}
[/sourcecode]
বুধবার, ১৬ ডিসেম্বর, ২০১৫
URI Online Judge | 2006 Identifying Tea Solution
/*****************************
* Author: Md. Rana Mahmud *
* r4n4m4hmud.wordpress.com *
*****************************/
#include <stdio.h>
int main()
{
int t,count = 0;
int a,b,c,d,e;
scanf("%d",&t);
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
if(a==t)
count++;
if(b==t)
count++;
if(c==t)
count++;
if(d==t)
count++;
if(e==t)
count++;
printf("%d\n",count);
return 0;
}
[/sourcecode]
মঙ্গলবার, ১৫ ডিসেম্বর, ২০১৫
URI Online Judge | 1235 Inside Out Solution
/*****************************
* Author: Md. Rana Mahmud *
* r4n4m4hmud.wordpress.com *
*****************************/
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
cin.ignore();
string line;
while(n-->0)
{
getline(cin,line);
for(int i = (line.length()/2)-1; i>=0; i--)
cout<<line[i];
for(int i = line.length()-1; i>=line.length()/2; i--)
cout<<line[i];
cout<<endl;
}
}
[/sourcecode]
URI Online Judge | 1218 Getline Three - Shoes Solution
/*****************************
* Author: Md. Rana Mahmud *
* r4n4m4hmud.wordpress.com *
*****************************/
#include <iostream>
#include <cstdio>
#include <sstream>
using namespace std;
int main()
{
int N,number,mShoes,fShoes,totalShoes,counter = 1,mark = 0;
string line,str;
char ch;
while(scanf("%d",&N)!=EOF)
{
mShoes = 0;
fShoes = 0;
cin.ignore();
getline(cin,line);
stringstream ss(line);
while(ss>>number>>ch)
{
if(number==N)
{
if(ch=='M')
mShoes++;
else if(ch=='F')
fShoes++;
}
}
if(mark!=0)
cout<<endl;
else
mark = 1;
printf("Caso %d:\n",counter);
counter++;
totalShoes = mShoes+fShoes;
printf("Pares Iguais: %d\n",totalShoes);
printf("F: %d\n",fShoes);
printf("M: %d\n",mShoes);
}
}
[/sourcecode]
URI Online Judge | 1217 Getline Two - Fruits Solution
#include <iostream>
#include <string>
#include <sstream>
#include <cstdio>
using namespace std;
int main()
{
int n;
cin>>n;
int day[n],kgCount,kg[n];
double cost, kgSum= 0,moneySum = 0;
string line,str;
for(int i = 0; i<n; i++)
{
kgCount = 0;
cin>>cost;
moneySum+=cost;
cin.ignore();
getline(cin,line);
stringstream ss(line);
while(ss>>str)
{
kgCount++;
kgSum++;
}
kg[i] = kgCount;
cout<<"day "<<i+1<<": "<<kgCount<<" kg"<<endl;
}
printf("%.2lf kg by day\n",kgSum/n);
printf("R$ %.2lf by day\n",moneySum/n);
}
[/sourcecode]
বৃহস্পতিবার, ১৯ নভেম্বর, ২০১৫
সি লাইব্রেরী ফাংশন strlen() এর টিউটোরিয়াল
এখন প্রশ্ন অাসতে পারে স্ট্রিংয়ের দৈর্ঘ্য বলতে কি বুঝায় ? সি স্ট্রিংয়ের শুরু থেকে স্ট্রিংয়ের শেষে নাল ক্যারেক্টার('\0') পর্যন্ত যতগুলো ক্যারেক্টার অাছে সেই সংখ্যাকে স্ট্রিংয়ের দৈর্ঘ্য বলা হয় (নাল ক্যারেক্টার ('\0')বাদ দিয়ে ) ।
strlen() লাইব্রেরি ফাংশন ব্যবহার করার জন্য string.h লাইব্রেরি ফাংশনটি প্রোগ্রামে যুক্ত করতে হবে । এই জন্য প্রোগ্রামের শুরুতে নিচের লাইনটি লিখতে হবে ।
[sourcecode language="c"]
#include <string.h>
[/sourcecode]
অামরা এখন নিচে একটি প্রোগ্রামে কিভাবে strlen() ব্যবহার করতে হয় তা দেখব ।
নিচের প্রোগ্রামটিতে একটি string নামের স্ট্রিং ভেরিয়েবল ও স্ট্রিংয়ের দৈর্ঘ্য রাখার জন্য stringLength নামের একটি ইন্টিজার ভেরিয়েবল তৈরি করা হয়েছে । তারপরে বলা হয়েছে একটি স্ট্রিং ইনপুট দিতে । প্রোগ্রামটিতে "Bangladesh" ইনপুট হিসেবে দেয়া হয়েছে । তারপরে string ভেরিয়েবলটি strlen() লাইব্রেরি ফাংশনে strlen(string) লিখে প্যারামিটার হিসেবে দেয়া হয় । এখন এই ফাংশন string এর দৈর্ঘ্য রিটার্ন করবে । "Bangladesh" স্ট্রিং ইনপুট দেয়ার পরে যখন নিচের লাইনটি চলবে তখন stringLength ভেরিয়েবলের মান হবে 10 ।
[sourcecode language="c"]
stringLength = strlen(string);
[/sourcecode]
এবং শেষে স্ট্রিংটির দৈর্ঘ্য প্রিন্ট করা হয়েছে।
[sourcecode language="c"]
/*****************************
* Author: Md. Rana Mahmud *
* r4n4m4hmud.wordpress.com *
*****************************/
#include <stdio.h>
#include <string.h>// We have to include this for abs() library function
int main()
{
char string[100];
int stringLength;
//Asks for a string input
printf("Enter a string : \n");
scanf("%s",string); //Takes string input
stringLength = strlen(string);//We pass the string to strlen() function
//and store the return value of the function
printf("Length of %s is %d.\n",string,stringLength);
}
[/sourcecode]
[caption id="attachment_96" align="alignnone" width="658"] স্টিংয়ের দৈর্ঘ্য প্রিন্ট করার প্রোগ্রাম ।[/caption]
শুক্রবার, ১৩ নভেম্বর, ২০১৫
সি লাইব্রেরী ফাংশন abs() এর টিউটোরিয়াল
সি প্রোগ্রামিং ল্যাংগুয়েজে লাইব্রেরী ফাংশন ব্যবহার করে অনেক কাজ খুব সহজে করা যায় । সি প্রোগ্রামিং ল্যাংগুয়েজের স্ট্যান্ডার্ড লাইব্রেরীর ফাংশনগুলো নিয়ে ধারাবাহিকভাবে লেখার চেষ্টা করব । অাজকের বিষয় abs() ফাংশন ।
abs() লাইব্রেরী ফাংশন ব্যবহার করে অামরা ইন্টিজার ডাটা টাইপ অর্থাৎ পূর্ণসংখ্যার পরমমান বের করতে পারব । abs() লাইব্রেরী ফাংশন একটি ইন্টিজার টাইপের সংখ্যা ইনপুট নিয়ে তার পরমমান রিটার্ন করে । যেমন : অামরা যদি abs() ফাংশনে -3 সংখ্যাটি প্যারামিটার হিসেবে পাস করি তাহলে তা 3 রিটার্ন করবে ।
abs() লাইব্রেরি ফাংশন ব্যবহার করার জন্য প্রথমে stdlib.h হেডার ফাইলটি প্রোগ্রামে যুক্ত করতে হবে । এই জন্য #include <stdlib.h> লাইনটি প্রোগ্রামের উপরে লিখতে হবে । নিচের প্রোগ্রামটিতে number ও result নামের দুইটি ইন্টিজার টাইপের ভেরিয়েবল ডিক্লেয়ার করেছি । এখন প্রোগ্রাম রান করার পরে একটি সংখ্যা ইনপুট দিতে বলবে । সেই সংখ্যাটি number ভেরিয়েবলে স্টোর করবে । number ভেরিয়েবলটি abs(number) লিখে ফাংশনে প্যারামিটার হিসেবে পাস করা হয় । ফাংশনটি number এর পরমমান রিটার্ন করবে । তা অামরা result এ স্টোর করবে । শেষে result এর মান প্রিন্ট করবে ।
[sourcecode language="c"]
/*****************************
* Author: Md. Rana Mahmud *
* r4n4m4hmud.wordpress.com *
*****************************/
#include <stdio.h>
#include <stdlib.h>// We have to include this for abs() library function
int main()
{
int number;
int result;
//Asks for a number input
printf("Enter a integer number : \n");
//Takes the intger number input and stores in number variable
scanf("%d",&number);
result = abs(number);//We pass the number variable to abs()
//function and store the return value of the function
printf("Absolute value of %d is %d\n",number,result);
return 0;
}
[/sourcecode]
[caption id="attachment_51" align="aligncenter" width="681"] abs() ফাংশনের প্রোগ্রামটি -9 ইনপুট নিয়ে -9 এর পরমমান 9 প্রিন্ট করেছে ।[/caption]
উদাহরণ স্বরূপ উপরের প্রোগ্রামটি চালানোর পরে -9 ইনপুট দেয়া হয় । এই মানটি number ভেরিয়েবলে স্টোর হয় প্রথমে । তারপরে abs() ফাংশনে abs(number) লিখে প্যারামিটার হিসেবে পাস হয় এবং 9 রিটার্ন করে । এই রিটার্ন করা মান তারপরে result ভেরিয়েবলে স্টোর করার পরে result এর মান প্রিন্ট করে ।
মঙ্গলবার, ১০ নভেম্বর, ২০১৫
শনিবার, ২৪ অক্টোবর, ২০১৫
সি প্রোগ্রামিং ল্যাংগুয়েজে ইনসার্শন সর্ট অ্যালগরিদমের কোড
//Author: Md. Rana Mahmud
#include <stdio.h>
void insertionSort(int a[],int length)
{
int key,i,j;
for(j = 1; j<length; j++)
{
key = a[j];
i = j-1;
while(i>=0&&a[i]>key)
{
a[i+1] = a[i];
i--;
}
a[i+1] = key;
}
}
int main()
{
int data[1000],i,num;
printf("Enter how many numbers are there : \n");
scanf("%d",&num);
printf("Enter the numbers: \n");
for(i = 0; i<num; i++)
scanf("%d",&data[i]);
insertionSort(data,num);
printf("The sorted numbers are : \n");
for(i = 0; i<num; i++)
printf("%d ",data[i]);
printf("\n");
return 0;
}
[/sourcecode]
শুক্রবার, ২৩ অক্টোবর, ২০১৫
মঙ্গলবার, ২০ অক্টোবর, ২০১৫
রবিবার, ২০ সেপ্টেম্বর, ২০১৫
দুটি সংখ্যার সীমার মাঝে কতটি ফিবোনাচ্চি সংখ্যা অাছে ?
মনে করি F > 1 একটি ফিবোনাচ্চি সংখ্যা । তাহলে F কততম ফিবোনাচ্চি সংখ্যা তা বের করার জন্য নিচের সূত্রটি ব্যবহা করব ।
সূত্রটি যদি F এর মান এক এর চেয়ে বড় হয় তাহলে সঠিক ফলাফল দিবে ।
যেখানে :
উদাহরণ দিলে অারও পরিষ্কার হবে : 10 ও 100 এর মাঝে কতটি ফিবোনাচ্চি সংখ্যা অাছে তা বের করতে হবে । তা বের করার জন্য উপরের সূত্র ব্যবহার করে পাই 10(F) = 6 এবং 100(F) = 11 । বিয়োগফল 5 । সুতরাং 10 এবং 100 এর মাঝে 5 টি ফিবোনাচ্চি সংখ্যা অাছে । নিচে ফিবোনাচ্চি সংখ্যার সিরিজেও দেখা যাচ্ছে 10 ও 100 এর মাঝে 5 টি ফিবোনাচ্চি সংখ্যা অাছে ।
সি প্রোগ্রামিং ভাষায় যদি উপরের হিসেব করার প্রোগ্রাম :
[code language="c"]
#include <stdio.h>
#include <math.h>
int main()
{
double phi = (1+sqrt(5))/2;
int a, b,count = 0,aF,bF;
printf("Enter two numbers: \n");
scanf("%d%d",&a,&b);//Taking input a and b
//logarithm of x base b = log(x)/log(b)
aF = floor(log(a*sqrt(5)+0.5)/log(phi));
bF = floor(log(b*sqrt(5)+0.5)/log(phi));
count = bF - aF;
printf("\nThere are total %d fibonacci numbers.\n",count);
return 0;
}
[/code]
সূত্র ও ছবি : উইকিপিডিয়া ।
মঙ্গলবার, ২৩ জুন, ২০১৫
তৃতীয় ভেরিয়েবল ব্যবহার না করে দুটি ভেরিয়েবলের মান সোয়াপ করা
- প্রথম ভেরিয়েবল ও দ্বিতীয় ভেরিয়েবল যোগ করে যোগফল দ্বিতীয় ভেরিয়েবলে রাখব। যেমন: num2 = num1 + num2 । এখন num2 = num1 + num2 = 80 + 34 = 114 হবে । এই ধাপ শেষে num2 এর মান হয়ে গেল 114 ।
- দ্বিতীয় ভেরিয়েবল হতে প্রথম ভেরিয়েবল বিয়েোগ করে বিয়োগফল প্রথম ভেরিয়েবলে রাখব । যেমন : num1 = num2 - num1। এখন num1 = num2 - num1 = 114 - 80 = 34 হবে । এই ধাপ শেষে num1 এর মান হয়ে গেল 34 ।
- দ্বিতীয় ভেরিয়েবল হতে প্রথম ভেরিয়েবল বিয়োগ করে বিয়োগফল দ্বিতীয় ভেরিয়েবলে রাখব । যেমন: num2 = num2 - num1 । এখন num2 = num2 - num1 = 114 - 34 = 80 হবে। এই ধাপ শেষে num2 এর মান হয়ে গেল 80 ।
প্রোগ্রামটির রান করার পরে কনসোলে:
সোয়াপ করার অাগে ও পরে ভেরিয়েবলের মান |
ডাউনলোড