
13.11.2007, 22:58
|
|
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
С нами:
10140806
Репутация:
932
|
|
Было накидано за 15 минут... Тока 1 и 2 задания.
Код:
#include <tchar.h>
#include <iostream>
using namespace std;
bool isst2(int x,int s);
int _tmain(int argc, _TCHAR* argv[])
{
register int *ms1,*ms2,size,x,summ=0,y; //трахаться будем по полной
bool tmp; //херня
cout<<"Enter size of massives:"; //вводим размеры. Я тут у них одинаковый размер
cin>>size;
ms1 = new int[size];
ms2 = new int[size];
/*Вводим массивы*/
for(x=0;x<=size;x++){
cout<<"Enter "<<x<<" element of first massive:";
cin>>ms1[x];
cout<<"Enter "<<x<<" element of second massive:";
cin>>ms2[x];
}
/*1. Найти сумму элементов массива, являющихся степенями числа 2. */
for(x=0;x<=size;x++){
if(isst2(ms1[x],1)) summ+=ms1[x];
}
cout<<"Answer to 1: "<<summ<<endl; //незнал как по-англицки
/*2. Найти наименьшее среди чисел первой последовательности, не входящих во вторую.*/
summ=ms1[0]; //текущее мах число
for(x=0;x<=size;x++){
tmp=1;
for(y=0;y<=size;y++){
if (ms2[y]==ms1[x]) tmp=0; //входит :(
}
if(tmp && ms1[x]<summ) summ = ms1[x];
}
cout<<"Answer to 2"<<summ<<endl;
return 0;
}
/*Является или число степенью числа 2*/
bool isst2(int x,int s)
{
s*=2;
if(s==x) return 1;
else if(s>x) return 0;
else isst2(x,s);
}
Последний раз редактировалось Ky3bMu4; 13.11.2007 в 23:06..
|
|
|