不使用加减乘除法,完成两个数的加法

#include "stdio.h" 

//不使用加减乘除法,完成两个数的加法

int addwei(int num1,int num2)
{
    if(num2==0) return num1;
    int c=num1 ^ num2;
    int d=(num1 & num2)<<1;
     return addwei(c,d);
}

 int main()
 {
     int a,b;
     //scanf("第一个数",&a,&b); [右边这样写就对了]  scanf("%d %d",&a,&b); printf("%d",addwei(a, b));
     printf("%d",addwei(19, 12));
     return 0;
 }
时间: 2024-10-06 20:05:20

不使用加减乘除法,完成两个数的加法的相关文章

位运算实现两个数的加法

#include<stdio.h> int add(int a,int b) { if(b==0) return a; int sum,ret; sum=a^b; ret=(a & b)<<1; return add(sum,ret); } void main() { int a=4; int b=5; int sum=0; sum=add(a,b); printf("%d\n",sum); }

C#面向对象编程-计算两个数的加减乘除

1.需求分析示例 名词提炼法: 示例:人开门 1.提取类 名词:人.门 类:人类.门类 2.分析每个类中应该有哪些方法或者属性 方法:开 那么"开"属于哪个类? 分析人和门谁最知道开这个动作,什么情况下才能使用开,门最清楚开的具体操作,等等一系列的分析,最终"开"属于门类. 3.门类示例代码 class Door { double menZhouJiaoDu;//门轴角度 double zhangDu;//弹簧张度 public void open() { //增加

用图形界面实现两个数的加减乘除

//输入两个数,实现加减乘除,并用消息框显示计算结果.//黄星,2015,9,29 import javax.swing.JOptionPane; //引入.JOptionPane public class Calculater { public static void main(String args[]) { //用户输入的两个数. String firstNumber,secondNumber; //两个加数,以及和.差.积.商. int number1,number2,add,sub,m

编写一个程序,用户输入两个数,求出其加减乘除,并用消息框显示计算结果

编写一个程序,用户输入两个数,求出其加减乘除,并用消息框显示计算结果 import javax.swing.JOptionPane; public class Test{ public static void main(String[] args) { int n1=Integer.parseInt(JOptionPane.showInputDialog("Input number 1: ")); int n2=Integer.parseInt(JOptionPane.showInpu

java课后作业 弹出窗口求两个数的加减乘除

//计算2个数的加减乘除 谷伟华 2015/10/6package jisuan; import javax.swing.JOptionPane; public class Jiasuan { public static void main(String[] args) { // TODO 自动生成的方法存根 String firstNumber; // 定义输入框的提示字 String secondNumber; // 定义输入框的提示字 double num1; // 定义输入的第一个数 d

计算两个数的最大公约数 gcd(a,b) &amp;&amp; 证明欧几里得算法

求两个数a和b的最大公约数,可以想到的是从[1,min(a,b)]枚举每个正整数: #include<iostream> using namespace std; int gcd(int a,int b) { int ans=1; for(int i=2;i<=min(a,b);++i) { if(a%i==0 && b%i==0) ans=i; } return ans; } int main() { int a,b; cin>>a>>b; co

编程之法section II: 2.2 和为定值的两个数

====数组篇==== 2.2 求和为定值的两个数: 题目描述:有n个整数,找出其中满足两数相加为target的两个数(如果有多组满足,只需要找出其中一组),要求时间复杂度尽可能低. 解法一: 思路:开散列映射,空间换时间, 查找耗时o(n) Writer: zzq Function: 求和为定值的两个数. 方法一: 开散列映射(哈希表). 1) 用哈希表Hashmap先把数组中的数字和对应的下标进行存储,(键,值)=(具体数值,对应下标): 2) 遍历数组,对loss=target-nums[

求两个数的最大公约数,辗转相除法与更相减损法(递归迭代)

问题:给出两个数a和b,求出他们的最大公约数(greatest common divisor). 解法一:辗转相除法,又叫欧几里得算法.两个正整数a和b(a>b),他们的最大公约数等于a除以b的余数和b之间的最大公约数. 比如10和25,25除以10余5,那么10和25的最大公约数等同于5和10之间的最大公约数. //辗转相除法 递归解法 int gcd(int a,int b){ if(a%b==0) return b; return (b,a%b); } //辗转相除法 迭代解法int gc

写一个方法,求两个数的最大公约数和最小公倍数。

package homework0702; /* * 最大公约数 利用辗转相除法求解两个正整数的最大公约数 在循环中,只要除数不等于0,用较大的数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环较小的数,如此循环直到较小的数值为0,返回较大的数.即为最大公约数. 辗转相除法(欧几里得算法) 定理:两个整数的最大公约数等于其中较小的那个数和两数的相除余数的最大公约数.最大公约数(greatest common divisor)缩写为gcd. 最小公倍数 最小公倍数 = (a