1、要求实现下面的函数,给定一个整数数组,找出其中3个整数,这三个整数进行加减法运算的结果最大,并且返回这三个数字。 int*maxmumNumbers(const int* nums,int numsSize)
输入样例:{12,5,-5,1,4}
返回:{12,5,-5}
#include<stdio.h>
#include<math.h>
int* maximumNumbers(const int*nums ,int numsSize)
{
int i,j,temp;
int sum = 0;
int *p = NULL;
p = (int*)malloc(sizeof(int)*3);
memset(p , 0 , sizeof(int)*3);
for( j=0 ; j<numsSize - 2 ; j++)
{
if( abs(nums[j]) > abs(*p))
*p = nums[j];
else if( abs(nums[j+1]) > abs(*(p+1)))
*(p+1) = nums[j+1];
else if( abs(nums[j+2]) > abs(*(p+2)))
*(p+2) = nums[j+2];
}
return p;
}
2、给定非负整数a,b,m,利用基本的算术运算符号(+ - / * %)以及位运算符,计算a^b mod m 输入要求:一行三个非负整数,空格相间,分为a,b,m的值,其中m不为0。
输出要求:a^b mod m的结果
例如
输入:2 10 5
输出:4
#include<stdio.h>
int func(int a, int b, int c)
{
int num = 1;
int i;
for( i=0 ; i<b ; i++)
{
num *= a;
}
num = num % c;
return num;
}
int main(void)
{
int a , b , m;
printf("请输入a,b,m的值:");
scanf("%d%d%d",&a,&b,&m);
int ret = func(a,b,m);
printf("%d\n",ret);
}
3、小明是一个间谍,现在他的任务是将一个整数n传给一个客户,要进行加密,加密方式是将n换成一个整数x,使得x的每个位数上的数字不小于n,那么最小满足条件的x就是小明想要找到的,现在小明需要传递一个整数n,你能帮助小明找下这个数么?
例如:当n=12,当x=20时,20-2-0>=12
输入描述: 10
输出描述: 输出一个整数,表示伪装后的数字
输入样例:12
输出:20
#include<stdio.h>
int func(int x)
{
int num = 0;
while(x >= 1)
{
num += x % 10;
x /= 10;
}
return num;
}
int main(void)
{
int n , x ,ret;
printf("请输入n的值:");
scanf("%d",&n);
x = n;
while(1)
{
ret = func(x);
if( x - ret > n )
{
printf("%d\n",x);
return 0;
}
x++;
}
}