文本加密和猴子分桃

Mar 31, 2021

2 mins read

两道编程小题:

1、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

#include <iostream>
using namespace std;

int main ()
{
   int n[ 4 ]= {3,5,7,9}; 
   int p[4]={0,0,0,0 };
   int jh =0 ;
   
for (int c=0;c<4;c++)  
{
	p[c]=(n[c]+5)%10;
}

jh=p[0];p[0]=p[3];p[3]=jh;
jh=p[1];p[1]=p[2];p[2]=jh;

cout<<endl<<"Encrypted Code: ";   

 for ( int j = 0; j < 4; j++ ) 
   {
       cout <<  p[ j ] ;
   }
   return 0;
}

2、海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

#include <iostream>
using namespace std;

int main()
{
    int s, l, t,i;
    l = 1;
        for (i=1; i<5; i++)
            l *= 5;
        s = 1+5*(l-1);
        t = s;
        for (i=1; i<=4; i++)
            t = (t-1)/5*4;
       cout<<s<<endl;
    return 0;
}