நிலை-1: கொடுக்கப்பட்டுள்ள எண் 100-ன் (multiples)மடங்காக இருக்கிறதா என்று சரிபார்க்கவேண்டும். அவ்வாறு இருந்தால் அதை 400-ஆல் மட்டுமே divide செய்து, remainder 0 வருகிறதா என்று பார்க்கவேண்டும். இந்த இரண்டும் சரியாக இருந்தால் அது leap year.
நிலை-2: கொடுக்கப்பட்டுள்ள எண் 100-ன் (multiples)மடங்காக இல்லாதபோது, அதை 4-ஆல் மட்டுமே divide செய்து, remainder 0 வருகிறதா என்று பார்க்கவேண்டும். இந்த இரண்டும் சரியாக இருந்தால் அது leap year.
மேற்கண்ட இரண்டு நிலைகளிலும் பொருந்தாத எண் தான் not leap year.
#include<stdio.h>
#include<conio.h>
int main(){
int n=1900;
if(n%100==0 && n%400==0){
printf("It is a leap year.");
}else if(n%4==0){
printf("It is a leap year.");
}else{
printf("It is not a leap year.");
}
return 0;
}
Output:
It is not a leap year.உண்மையில் கொடுக்கபட்டுள year 1900 என்பது ஒரு leap year கிடையாது. ஏனெனில் இது நிலை-1-ன் படி 100-ன் multiple-ஆக இருக்கிறது ஆனால் 400-ஆல் divide செய்தால் remainder 300 கிடைக்கிறது. ஆகையால் தான் இது leap year கிடையாது.
ஆனால் நிலை-2-ன் படி 4-ஆல் மட்டுமே divide செய்தால் remainder 0 கிடைக்கிறது. ஆகையால் இது ஒரு leap year என்று எடுத்துகொள்ள இயலாது. ஏனெனில் எப்பொழுதும் நிலை-1-ஐதான் முதலில் எடுத்து சரிபார்க்கவேண்டும். அதில் உள்ள இரண்டு condition-களும் பொருந்தாத பொழுதுதான், நிலை-2-ஐ சரிபார்க்க வேண்டுமே தவிற நிலை-2-ஐ முதலில் சரிபர்க்க கூடாது. அவ்வாறு சரிபர்த்தல் இப்பொழுது கொடுக்கப்பட்டுள்ள எண் 1900 ஒரு leap year என்று தவறான விடை கிடைத்துவிடும்.
பெரும்பாலோர் இந்த நிலை-2-ஐ மட்டும் சரிபார்த்துவிட்டு, அதாவது 4-ஆல் மட்டும் divide செய்துவிட்டு முடிவேடுத்துவிடுகின்றனர். இது ஒரு தவறான அணுகுமுறை ஆகும்.
Pgcomments
இது பற்றிய தங்களின் கருத்துகளை இங்கே பதிவிடுங்கள் . இது பயனுள்ளதாக விரும்பினால் மற்றவர்களுக்கும் இதை share செய்யுங்கள்.
Comments