使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(int n)的功能是实现对一个整数的加密,具体的加密方法是一个4位长的整数,用每位数字加上3然后除以9的余数代替该数字,再将第1位和第4位交换,第2位和第3位交换,然后返回得到的密码。
程序输出结果为
1864
2075
注意:不能修改其他部分的代码。
试题程序:
#include<iostream.h>
#include<cmath>
int fun(int n)
int main()
int i=1357;
cout<<fun(i)<<end1;
i=2468;
cout<<fun(i)<<end1;
return 0;
参考答案:int i,a[4],t;
a[0]=n%10; //取整型n的第1位数字
a[1]=n%100/10; //取整型n的第2位数字
a[2]=n%1000/100; //取整型n的第3位数字
a[3]=n/1000; //取整型n的第4位数字
for(i=0;i(=3;i++) //每位数字加3,取余
{
a[i]+=3;
a[i]%=9;
}
t=a[0]; //根据加密算法交换
a[0]=a[3];
a[3]=t;
t=a[1];
a[1]=a[2];
a[2]=t;
return a[3]*1000+a[2]*100+a[1]*10+a[0]; //重组,返回加密数字
解析: 本题首先取得要加密整数的每一位数字,并存入数组。根据加密算法,利用循环实现每位数字加3,再除以9取余。根据加密算法进行数字交换,最后重组,返回密码。