একটি স্ট্রিং str দেওয়া, আমাদের কাজ হল এর বিপরীত প্যাটার্ন প্রিন্ট করা। প্যাটার্নটি বিপরীত ক্রমে ক্রমবর্ধমান হবে, এবং স্ট্রিংটি সম্পূর্ণ হলে অবশিষ্ট স্থানে '*' পূরণ করুন।
যেমন আমরা একটি স্ট্রিং "abcd" লিখি, এখন প্রথম লাইনে আমাদের "a" প্রিন্ট করতে হবে তারপরের লাইনে আমাদের "cb" প্রিন্ট করতে হবে এবং তারপরে তৃতীয় লাইনে আমরা "**d" প্রিন্ট করব।
উদাহরণ
Input: str[] = { “abcd” } Output: a c b * * d
ব্যাখ্যা −
- প্রথম লাইনে ১টি অক্ষর প্রিন্ট করুন
- দ্বিতীয় লাইনে 2টি অক্ষর বিপরীত ক্রমে প্রিন্ট করুন
- তৃতীয় লাইনে বিপরীত ক্রমে 3টি অক্ষর প্রিন্ট করুন, যদি স্ট্রিংটি 3-এর কম হয় তাহলে অক্ষরগুলি প্রিন্ট করুন এবং * দিয়ে ফাঁকা স্থানগুলি পূরণ করুন।
Input: str[] = {“tutorialspoint”} Output:
নিচে ব্যবহৃত পদ্ধতিটি নিম্নরূপ −
- আমরা i=0 থেকে স্ট্রিংটি অতিক্রম করব এবং i
- তারপর আমরা একটি চলক k নেব এবং k কে ((i*(i+1))/2)-1 হিসাবে সেট করব
- আমরা পরীক্ষা করব যদি k>=n-1 তাহলে, "* " প্রিন্ট করবে অন্যথায় স্ট্রিং এর মান বিপরীত ক্রমে প্রিন্ট করবে
অ্যালগরিদম
Start In function int reverse_it(char str[], int n) Step 1-> Declare and Initialize i, j=0 , k=0 Step 2-> Loop For i=0 and i<n && k<(n-i)*2 and i++ Set k as ((i*(i+1))/2)-1 Loop For j=0 and j<i && k<(n-i)*2 and j++ If k >= n-1 then, Print "* " Else Print "%c ",str[k] Decrement k by 1 End loop Print new line End loop In Function int main(int argc, char const *argv[]) Step 1-> Declare and initialize string str[] Step 2-> Declare and Initialize size as sizeof(str)/sizeof(str[0]) Step 3-> Call function reverse_it(str, size); Stop
উদাহরণ
#include <stdio.h> int reverse_it(char str[], int n) { int i, j=0 , k=0; for(i=0; i<n && k<(n-i)*2; i++) { //Assigning k k = ((i*(i+1))/2)-1; for(j=0; j<i && k<(n-i)*2; j++) { //will check if k is greater than the total number of characters //then we will print * for filling the extra characters if(k >= n-1) printf("* "); //print the string in reverse order else printf("%c ",str[k]); k--; } //for line break after reverse sequence printf("\n"); } return 0; } //Main Function int main(int argc, char const *argv[]) { char str[] = {"tutorialspoint"}; int size = sizeof(str)/sizeof(str[0]); reverse_it(str, size); return 0; }
আউটপুট
উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবে