本文主要是介绍元素相加交换另解puts的一个用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include<iostream>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
a^=b;
b^=a; //交换
a^=b;
cout<<a<<" "<<b<<endl;
puts(a?"Stan wins.":"Ollie wins.");
return 0;
}
给定两个正整数,不使用加减乘除符号计算它们的和。
方法:例如,5+17=22,5是101,17是10001。
第一步各位相加得到的结果为10100(不考虑进位)---与异或操作相符;
第二步记下进位,为10---可用&操作来记下;
第三步把前两步的结果相加,得到10110,转换成十进制正好为22.重复上述过程,直到不产生进位为止。
int add(int a,int b)
{int sum,tmp;do{sum = a ^ b;tmp = (a & b) << 1;a = sum;b = tmp;}while(tmp != 0);return sum;
}
int swap(int &a,int &b)
{a = a + b;b = a - b;a = a - b;
}
int swap(int &a,int &b)
{a ^= b;b ^= a;a ^= b;
}
这篇关于元素相加交换另解puts的一个用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!