#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std
int Change(char s[100]) //把五进制的数转为十进制
{
char s1[100]
long ten=0
int i=0
while(s[i]!='\0')
{
s1[i]=s[i]-'0'
if(s1[i]<0 || s1[i]>4) //判断是否是合法的五进制
{
cout<<逗烂好"非法的五进制数"
break
}
i++
}
for(int j=0j<ij++)
{
ten += s1[j] * pow(5,i-j-1)
}
return ten
}
int Exchange(int ten) //把十进制转换成五进制
{
int s = 0
int count = 0
while(ten != 0)
{
int tmp = ten % 5
s += tmp * pow(10, count++)
ten = ten / 5
}
return s
}
int Add(int a,int b) //求加
{
return a+b
}
int Del(int a,int b) //求差
{
return a-b
}
int main(int argc, char* argv[])
{
char m[100],n[100]
int x,y
int sum,fuck
cout<<"请输入正确的五进制数"<<endl
cin>山铅>m>>n
x=Change(m)
y=Change(n)
sum=Add(x,y)
fuck=Del(x,y)
cout<<"和为:"<<Exchange(sum)<<" "<<"差为历山:"<<Exchange(fuck)<<endl
return 0
}
#include<stdio.h>并中#include<string.h>
static char *QUINARY = "01234"
static char *OCTONARY = "绝清山01234567"
static char *FIFTNARY = "0123456789ABCDE"
static char buff[10]
char *toQuinary(int num)
char *toOctonary(int num)
char *toFifnary(int num)
char *reverse(char *str)
int main(void)
{
int flag = 1
int num = 0
int choice = 0
while(flag)
{
printf("请输入一个三位数:")
scanf("%d",&num)
printf("转换为几进制? 1--五进制 2--八进制 3--十五进制 0--退正雹出\t")
scanf("%d",&choice)
char *result = ""
switch(choice)
{
case 1:
result = toQuinary(num)
printf("%s\n",result)
break
case 2:
result = toOctonary(num)
printf("%s\n",result)
break
case 3:
result = toFifnary(num)
printf("%s\n",result)
break
default:
flag = 0
break
}
}
return 0
}
char *toQuinary(int num)
{
if(num <= 0) return "0"
int i = 0
while(num >0)
{
int ret = num % 5
buff[i] = QUINARY[ret]
num /= 5
i++
}
buff[i]='\0'
return reverse(buff)
}
char *toOctonary(int num)
{
if(num <= 0) return "0"
int i = 0
while(num >0)
{
int ret = num % 8
buff[i] = OCTONARY[ret]
num /= 8
i++
}
buff[i]='\0'
return reverse(buff)
}
char *toFifnary(int num)
{
if(num <= 0) return "0"
int i = 0
while(num >0)
{
int ret = num % 15
buff[i] = FIFTNARY[ret]
num /= 15
i++
}
buff[i]='\0'
return reverse(buff)
}
char *reverse(char *str)
{
int length = strlen(str)
char copy[length+1]
int i = 0
for(i=0i<lengthi++)
{
copy[i] = str[length-i-1]
}
copy[i] = '\0'
strcpy(str,copy)
return str
}
“加法”是少数几项我们从学校中学会的很有实践运用意义的技能。所幸,学习加法一点也不难。并且,针对数字的不同,可以采取不同的技巧。因此,详细的方法如下:
方法1
小数字相加运算
首先熟悉加法的概念。拿出一把小黄豆(或其它小物体)。将一些黄豆放在一边形成一堆,然后从1开始数这一堆黄豆有多少个(从1、2、3数到最后一个黄豆)。数到最后一个黄豆的数字就是这一堆黄豆的总数。在纸上记录黄豆总数的数字。然后再数另一堆有多少个黄豆。
学习“数对”。由于大多数人都习惯以10为单位计数,所以熟记和为10的一对数可以让加法更简单。伏做掌握那些两数和为10的数对。
尽可能地将数字配对组成“数对”。尽可能地将数字和数字配对,使之和为十的倍数。
将额外部分数字相加。凑完整十数之后,再加上余下的数字,用笔算或心算将其相加即可。
仔细检查你的运算结果。只要有时间,你最好每次都用其它方法来复检你的运算结果以保证运算正确。
方法2
大数目相加运算
学习数位的概念。当你书写数字时,每个数字的位置都有其特定的名字或类型。掌握数位的概念可以帮助你正确地排列数字及运算
排列数字。在计算加法运算时,先将数字按位数从多到少来从上向下地排列数字。排列数字是为了让数字的每个相同的数位进行对齐。如果一个数字没有高位数,那么就在其左侧空出一个数位。
将第一列数字相加。从右边开始,将最右侧的一列数字相加。将相加得到的结果写在这一列的下方位置。按照该法将其它列数字相加并写下结果。
向前一个数位进位。如果个位数数字相加得到的结果在十位数上有数字,那么在左侧一栏的顶部写下十位上的数字。
计算下一栏。计算完个位数一栏,我们需要计算做谈左侧十位上数字之和,这也包括进位的数字。然后将计算结果写在中间栏的下方。
方法3
小数的加法运算
将小数进行排列。当一个数字带有小数点时,那么你在计算小数相加时要格外仔细才行。主要的窍门就是根据小数点的位置排列所有数字。数字的小数点对齐,自成一列。
方法4
分数的加法运算
将各个分数的分母化为相同的分母。分母是分数式横线下方的数字。在计算分数相加时,你需要将分母化成相同的数字,然后将分子相加。你可以将分子分母同时乘以(或除以)一个相同的数字来
化简分数。你也许希望简化分数来方便阅读。你可以用分子和分母同时除以其相同的因数来化简分数。在本例中,我们不需要化简。因为它已经是最简形式了。但是如果你得到的是一个像3/6这样的结果,那么你需要将其进行化简。
当我们发现分子分母纯厅碰可以同时除以一个小数字时,我们就可以将分数化简。在本例中,我们用两者都除以3来化简,得到结果1/2。
方法5
加法技巧
凑数计算。如果你只计算几个数字的和,并且这些数字中没有恰巧可以凑成整10数的,那么你可以通过加上或者减去一个数来简化计算。
利用数字的形状。如果你想快速心算,那么分组的方法可能并不适合你。你可以利用数字的形状计算加法,而不是靠数手指。这个方法最适合用于几个数字求和的情况。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)