Bildiyiniz kimi biz 10-luq say sistemindən istifadə edirik. Programmer-lər ən çox 2-lik say sistemindən istifadə edirlər. Və bugün mən 1-lik say sitemi haqqinda sizlərə məlumat vermək istəyirəm.
Program ~ girilənə gədər isləməlidir.
Məsələn girilir:
0 0000 00 000 0 0000 #
~
Burada # sətirin sonu deməkdir. Gələk 0-lara.
1-ci blockda bir ədəd sifir oldugu üçün yadımızda bir regemini saxlayaq
2-ci blockda 4 ədəd sifir var. 4-2=2 deməli 2 ədəd yadimizda olan ədəd (1)
3-cü blockda 2 ədəd 0 varş deməli yadımızda 0 saxlayaq.
4-cü blockda isə 3 ədəd 0 var. Deməli 3-2=1. Yəni 1 ədəd yadimizda olan rəqəmş(0)
5-ci blockda sadəcə bir ədəd 0 var. yadımızda 1 saxlayaqş
6-ci blockda 4 ədəd 0 var. 4-2=2. Yəni 2 ədəd yadimızda olan rəqəm (1)
Alinan Binary olacaq 11011. Və binary-ni 10-luq say sisteminə cevirib ekrana vermək lazimdir...
Programlama Dili: C++
Compiler: GNUCPP
Tövsiyyə olunan Editorlar: CodeBlocks / Dev-C++
Mənim kodum:
Kod:
#include <iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
char ch,f,ch1[100];
int i,j,len,sp,c,d,o=0;
double sum,sum1,k;
len=0;
sp=0;
j=0;
while(scanf("%c",&ch)==1){
if(ch=='0')
len++;
else if(ch==' ') {
sp++;
if(sp==1&&len>2)
o=1;
else if((len==1||len==2)&&sp%2!=0)
{
c=len;
if(c==1)
f='1';
else
f='0';
}
else{
d=len-2;
for(i=0;i<d;i++)
ch1[i+j]=f;
j=i+j;
}
len=0;
}
else if(ch=='#'){
if(o==1)
sum1=0;
else{
k=0;
for(i=j-1;i>=0;i--){
sum=ch1[i]-48;
sum=sum*pow(2,k);
sum1=sum1+sum;
k++;
}
}
printf("%0.f\n",sum1);
sum1=0;
len=0;
sp=0;
j=0;
o=0;
}
else if(ch=='~')
break;
}
return 0;
}