c++实现写一个函数,求2个整数的和,要求在函数体内不得使用+,-* /

#include <iostream>
using namespace std;
int add(int x, int y)
{
	return x+y;
} 

int addmove(int a, int b)
{
	  if (b==0)
	  {
		return a;
	  }
	  else
	  {
		int sum = a ^b;	//处理移位 11 = 0, 10 = 1,00 = 0
		int jinwei = (a & b) <<1;	//11 = 0; 10 = 1,00 = 0
		return addmove(sum,jinwei);
	  }
}
void main()
{
	cout<<add(12,12)<<endl;
	cout <<addmove(12,12)<<endl;
	system("pause");
}

  

时间: 2024-10-09 04:41:17

c++实现写一个函数,求2个整数的和,要求在函数体内不得使用+,-* /的相关文章

给定一个正整数,实现一个方法求出离该整数最近的大于自身的 换位数 &lt;把一个整数各个数位进行全排列&gt;

"""给定一个正整数,实现一个方法求出离该整数最近的大于自身的 换位数 -> 把一个整数各个数位进行全排列""" # 使用 permutations() 方法实现import itertools def full_arrangement(num): my_str = '' my_list = [] permutation = list(itertools.permutations(str(num), len(str(num)))) for

写一个方法,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

思路: 1.两个数异或:相当于每一位相加,而不考虑进位:2.两个数相与,并左移一位:相当于求得进位:3.将上述两步的结果相加: 参考代码: public static int Add(int num1,int num2) { while (num2!=0) { int temp = num1^num2;//异或相当于加,但不考虑进位 num2 = (num1&num2)<<1;//按位与再左移一位用来计算进位 num1 = temp; } return num1; } //递归版本 p

写一个方法求数组中的最大值,最小值,总和以及平均值。

class Program { /// <summary> /// 求数组中的最大值,最小值,总和以及平均值. /// </summary> /// <param name="nums">输入一个数组</param> /// <returns>返回一个新的数组(max,min,sum,avg)</returns> public static int[] GetMaxMinSumAvg(int[] nums) { i

编写函数求两个整数 a 和 b 之间的较大值。要求不能使用if, while, switch, for, ?: 以 及任何的比较语句。

本题要求不能使用if, while, switch, for, ?: 以 及任何的比较语句,也就是要求我们不能用常规的方法来判断两个数的大小. 那么按照以往的方法,要判断两个数的大小,应该要将两个数进行减法运算,将结果与0进行比较.那现在不行进行比较,我们应该怎么办? 我们知道变量分为signed 和 unsigned 两种,有符号变量用最高位代表符号位. 当变量值为负数时,变量值的最高位为1, 当变量值为正数时,最高位为0 基于这种特性,我们可以用一个数组保存用于比较的两个数的值.如array

函数指针及其定义和用法,C语言函数指针详解

函数指针大家了解一下就行了,用得不多,但一定要认识它. 什么是函数指针 如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址.而且函数名表示的就是这个地址.既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针. 那么这个指针变量怎么定义呢?虽然同样是指向一个地址,但指向函数的指针变量同我们之前讲的指向变量的指针变量的定义方式是不同的.例如: int(*p)(int, int); 这个语句就定义了

c语言:写一个函数,输入n,求斐波拉契数列的第n项(5种方法,层层优化)

写一个函数,输入n,求斐波拉契数列的第n项. 斐波拉契数列:1,1,2,3,5,8...,当n大于等于3时,后一项为前面两项之和. 解:方法1:从斐波拉契数列的函数定义角度编程 #include<stdio.h> int fibonacci(int n) { int num1=1, num2=1, num3=0,i; if (n <= 2) { printf("斐波拉契数列的第%d项为:%d\n",n,num1); } else { for (i = 2; i <

C++刷题——2706: 编写一个函数求最大的n 值。

2706: 编写一个函数求最大的n 值. /* Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年 5 月 26 日 * 版 本 号:v1.0 */ Description 编写一个函数求满足以下条件的最大的n.:12+22+32+-+n2<k,k值由键盘输入(1000<k<=2000) Sample Input 1500 Sample Output 17 #

用JAVA写一个函数,功能如下: 任意给定一组数, 找出任意数相加之后的结果为35(任意设定)的情况

用JAVA写一个函数.功能如下:任意给定一组数,例如{12,60,-8,99,15,35,17,18},找出任意数相加之后的结果为35(任意设定)的情况. 可以递归算法来解: package test1; import java.util.Arrays; public class demo { public static void main(String[] args) { String str = "12,60,-8,99,15,35,17,18,8,10,11,12"; int s

c语言:写一个函数建立一个有3名学生数据的单向动态链表

写一个函数建立一个有3名学生数据的单向动态链表. 解:程序: #include<stdio.h> #include<stdlib.h> #define LEN sizeof(struct Student) struct Student { long num; float score; struct Student *next; }; int n; struct Student *creat(void)//定义函数返回一个指向链表头的指针 { struct Student *head

写一个函数实现数组中的元素随机乱序排序

//原生JS写一个函数实现一个shuffle方法,将数组中的元素随机乱序排序 var shuffle = function(arr){ var len,t,rand; for(var i =0;len = arr.length,i<len;i++){ rand = parseInt(Math.random()*len);//parseInt(Math.random()*(len-1-0)+1);或者rand = Math.floor(Math.random()*(len-1-0)+1);即Mat