C语言编程题目(猴子吃桃问题,加密解密问题等),一共五个题目。求大神解答一下,谢谢! 20

 我来答
771789161
2015-11-14 · 超过23用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:34.5万
展开全部
第一个
void move(int a[], int b[], int n, int m) {

for (int i = 0; i < (n - m); i++) {

b[i + m] = a[i];

}

for (int i = 0; i < m; i++) {

b[i] = a[i + n - m];

}

}
第二个
void f(char a[], unsigned int n) {
char str[] = "0123456789abcdef";
int k=0;
for (int temp = n; temp > 0; temp >>= 4, k++);
for (int i = k ; i != 0; i--) {
a[i - 1] = str[n % 16];
n >>= 4;
}
a[k] = '\0';
}

第三个,我明显复用了第二个的代码。
void f10(char a[], unsigned int n) {
char str[] = "0123456789";
int k = 0;
for (int temp = n; temp > 0; temp /= 10, k++);
for (int i = k ; i != 0; i--) {
a[i - 1] = str[n % 10];
n /= 10;
}
a[k] = '\0';
}
int sum() {

char a[5];
int iSum = 0;
for (int i = 200; i <= 1000; i++) {
f10(a, i);
for (int j = 0; a[j]!='\0'; j++) {
if (a[j] == '1') iSum += 1;
}
}
return iSum;
}

第四个递归即可
int daytotal(int n) {
if (n == 1) return 1;
else return (daytotal(n - 1) + 1) * 2;
}
int total() {
return daytotal(10);
}

最后一个:
void f10t4(char a[], unsigned int n) {
char str[] = "0123456789";
for (int i = 4; i != 0; i--) {
a[i - 1] = str[n % 10];
n /= 10;
}
a[4] = '\0';
}
char * encript(int n) {
char *in = (char*)malloc(4 * sizeof(char));
char temp;
f10t4(in, n);
for (int i = 1; i != 0; i--) {
temp = in[i] + 5;
if (temp > '9') temp -= 10;
in[i] = in[3 - i] + 5;
if (in[i] > '9') temp -= 10;
in[3 - i] = temp;
}
return in;
}
char * decript(int n) {
char *in = (char*)malloc(4 * sizeof(char));
char temp;
f10t4(in, n);
for (int i = 1; i != 0; i--) {
temp = in[i] - 5;
if (temp < '0') temp += 10;
in[i] = in[3 - i] - 5;
if (in[i] < '0') temp += 10;
in[3 - i] = temp;
}
return in;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式