Type-1 Type-2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Type-1
இதை நன்றாக கவனித்தால் n=5 rows, முதல் row-ல் 1 star, இரண்டாவது row-ல் 3 stars, மூன்றாவது row-ல் 5 stars, நான்காவது row-ல் 7 stars, ஐந்தாவது row-ல் 9 stars உள்ளது. அதவாவது 1,3,5,7,9,...etc. இவை அனைத்தும் odd numbers. row-ன் number-ஐ பொருத்து stars-ன் எண்ணிக்கையானது மாறுபட்டு கொண்டே இருக்கிறது.
அதே போல் star print செய்வதற்கு முன்பாக spaces print செய்யப்பட்டுள்ளது. அவை முதல் row-ல் 4 , அடுத்து 3,2,1,0 என்று குறைந்துகொண்டே வருகின்றது. இது கீழே கொடுக்கப்பட்டுள்ள pattern-ல் கொடுக்கப்பட்டுள்ளது.
s s s s * s s s * * * s s * * * * * s * * * * * * * * * * * * * * * *
முதலில் star print செய்வதற்க்கான logic-ஐ கொடுத்துவிட்டால் பிறகு space print செய்வதற்கான logic-ஐ கொடுப்பது எளிதானது. முதல் for loop-ல் row=1 என்றால் இரண்டாம் for loop 1-ல் முடியவேண்டும். அதேபோல் row=2 என்றால் 3-ல் முடியவேண்டும்,row=3 என்றால் 5, row=4 என்றால் 7, row=5 என்றால் 9-ல் முடியவேண்டும். ஏனெனில் இதை பொருத்து தான் stars print செய்யபடுகிறது.
நமக்கு odd number வேண்டுமெனில் எப்பொழுதும் ஒரு number-ஐ 2-ஆல் multiply செய்து அதில் 1-ஐ கழித்துவிட்டால் odd number கிடைத்துவிடும். ஆகவே இங்கு நாம் (row*2)-1 என்று செய்துவிட்டால் ஒவ்வொரு row-விழும் நமக்கு, 1,3,5,7,9 என்ற odd number கிடைத்துவிடும்.
for(int row=1;row<=n;row++){ for(int col=1;col<=(row*2)-1;col++){ printf("*"); } printf("\n"); }
இப்பொழுது இரண்டு for loop-களுக்கு இடையே space-க்கான logic-ஐ கொடுக்கவேண்டும். for loop-ன் condition (n-row) என்று கொடுத்துவிட்டால் ஒவ்வொரு row-க்கும் தேவையான space print செய்துவிடும்.
for(int row=1;row<=n;row++){
for(int s=1;s<=(n-row);s++){
printf(" ");
}
for(int col=1;col<=(row*2)-1;col++){
printf("*");
}
printf("\n");
}
Complete Program
#include<stdio.h>
#include<conio.h>
int main(){
int n,row,col,s;
printf("Enter how many rows you want: ");
scanf("%d",&n);
for(row=1;row<=n;row++){
for(s=1;s<=(n-row);s++){
printf(" ");
}
for(col=1;col<=(row*2)-1;col++){
printf("*");
}
printf("\n");
}
return 0;
}
* * * * * * * * * * * * * * * * * * * * * * * * *
Type-2
இதுவும் type-1 logic-ன் அடிபடையில் தான் செயல்படுகிறது. இதற்க்கு row 1-லிருந்து துவங்குவதற்கு பதிலாக n-லிருந்து துவங்கி 1-ல் முடியவேண்டும். இப்பொழுது type-1-ன் output அப்படியே தலைகீழாக மாறிவிடும். ஏனெனில் உள்ளே இருக்கும் இரண்டு for loop-களும் row-ன் value-ஐ அடிப்படையாக கொண்டுதான் செயல்படுகிறது. ஆகையால் row-ன் values மாறினால் total structure மாறிவிடுகிறது.
Complete Program
#include<stdio.h>
#include<conio.h>
int main(){
int n,row,col,s;
printf("Enter how many rows you want: ");
scanf("%d",&n);
for(row=n;row>=1;row--){
for(s=1;s<=(n-row);s++){
printf(" ");
}
for(col=1;col<=(row*2)-1;col++){
printf("*");
}
printf("\n");
}
return 0;
}
* * * * * * * * * * * * * * * * * * * * * * * * *
Pgcomments
இது பற்றிய தங்களின் கருத்துகளை இங்கே பதிவிடுங்கள் . இது பயனுள்ளதாக விரும்பினால் மற்றவர்களுக்கும் இதை share செய்யுங்கள்.
Comments