2023 4 17
1 #include<iostream> 2 #include<math.h> 3 using namespace std; 4 void print(int s[]); 5 int judge(int c[]); 6 int j=0; 7 int main(){ 8 int sweet[10]={10,2,8,22,16,4,10,6,14,20}; 9 int i,t[10],l; 10 cout<<"child 1 2 3 4 5 6 7 8 9 10"<<endl; 11 cout<<"....................................."<<endl; 12 cout<<"time"<<endl; 13 print(sweet); 14 while(judge(sweet)){ 15 for(i=0;i<10;i++) 16 if(sweet[i]%2==0) 17 t[i]=sweet[i]=sweet[i]/2; 18 else 19 t[i]=sweet[i]=(sweet[i]+1)/2; 20 for(l=0;l<9;l++) 21 sweet[l+1]=sweet[l+1]+t[l]; 22 sweet[0]+=t[9]; 23 print(sweet); 24 } 25 return 0; 26 } 27 int judge(int c[]){ 28 int i; 29 for(i=0;i<10;i++) 30 if(c[0]!=c[i]) 31 return 1; 32 return 0; 33 } 34 void print(int s[]){ 35 int k; 36 cout<<" "<<j++<<" "; 37 for(k=0;k<10;k++) 38 cout<<s[k]<<" "; 39 cout<<endl; 40 }
在函数judge中由于要判断所有成员是否相同一个一个打过于麻烦可以考虑逆向思维;若有一个不相同便继续运行;
合理利用while循环判断条件可以放入一个int类的函数,若判断要继续运行则返回1,判断停止则返回0;