Алгоритмы на С++
Решение задачи 6 главы 1
По целому и положительным целым числам определите, можно ли из них образовать подмножество, сумма элементов которого делится на без остатка. Если можно, то найти любое из таких подмножеств.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
void itmathrepetitor_ru() { int n,s,k; int* a,*b; cout<<"input n: "; cin>>n; a=new int [n]; b=new int [n]; s=0; for (int i=0; i<n; i++) { cout<<"input a["<<i+1<<"]: "; cin>>a[i]; b[i]=-1; } for (int i=0; i<n; i++) { s+=a[i]; if (!(s%n)) { for (int j=0; j<=i; j++) { cout<<a[j]<<" "; } cout<<endl; break; //www.itmathrepetitor.ru } else if (b[s%n]>=0) { for (int j=b[s%n]+1; j<=i; j++) { cout<<a[j]<<" "; } cout<<endl; break; } b[s%n]=i; } delete [] a; delete [] b; } |