题目1026:又一版 A+B-----------------------进制转换一定要用 do-while来进行辗转相除

#include<iostream>
 using namespace std;

int main()
{
    long long a,b;
    int m;
    while(cin>>m)
    {
        if (m==0) return 0;

        int s[50],i=0;
        cin>>a>>b;
        a=a+b;

        do{           // 用while进行循环能出正确的结果,但是不能AC;
            s[i++]= a%m;
            a=a/m;
        }while(a!=0);
        for (int j=i-1;j>=0;j--)
         cout<<s[j];
        cout<<endl;
    }
    return 0;
}

WHILE 和DO-WHILE的不同

一、while语句的一般形式为:while(表达式)语句其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。

二、do-while语句的一般形式为:        do            语句        while(表达式);这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while循环至少要执行一次循环语句。使用while语句应注意以下几点:1、while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0)即可继续循环。2、循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。
时间: 2024-10-29 19:11:24

题目1026:又一版 A+B-----------------------进制转换一定要用 do-while来进行辗转相除的相关文章

P2084 进制转换

题目背景 无 题目描述 今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 : 1*2^4+0*2^3+1*2^2+0*2^1+1*2^0, 那么请你编程实现,将一个M进制的数N转换成十进制表示的式子. 注意:当系数为0时,该单项式要省略. 输入输出格式 输入格式: 两个数,M和N,中间用空格隔开. 输出格式: 共一行,一个十进制表示的式子. 输入输出样例 输入样例#1: 复制 2 10101 输出样例#1: 复制 1*2^4+1*2^2+1*2^0 说明 对于100%

夯实基础——P2084 进制转换

题目链接:https://www.luogu.org/problem/P2084 P2084 进制转换 题目背景 无 题目描述 今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 : 1*2^4+0*2^3+1*2^2+0*2^1+1*2^0, 那么请你编程实现,将一个M进制的数N转换成十进制表示的式子. 注意:当系数为0时,该单项式要省略. 输入格式 两个数,M和N,中间用空格隔开. 输出格式 共一行,一个十进制表示的式子. 输入输出样例 输入 #1复制 2 1010

九度oj 题目1080:进制转换

题目描述: 将M进制的数X转换为N进制的数输出. 输入: 输入的第一行包括两个整数:M和N(2<=M,N<=36). 下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出. 输出: 输出X的N进制表示的数. 样例输入: 16 10 F 样例输出: 15 提示: 输入时字母部分为大写,输出时为小写,并且有大数据. 这题初看起来另我头疼,考虑不难但是很麻烦 一开始想的比较绕,准备先把任意进制转换成10进制,再转化成n进制,于是写出了下面的代码 1 #include

自制进制转换终极版

/** * 自制进制转换终极版 * 过程不重复了. */ public class TransFinal { public static void main(String[] args) { int num = 26; String hex = toHex(num); String oct = toOct(num); String bin = toBin(num); System.out.println("十六进制: "+ hex); System.out.println("

《java版进制转换》

import java.util.Scanner; class 十进制转成十六进制_2 { public static void main(String[] args) { int num = 0; Scanner scan = new Scanner(System.in); System.out.println("请输入一个十进制的整数:"); num = scan.nextInt(); String str_bin = toBinary(num); String str_oct =

JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都是很痛苦的事情,但是程序之路这么长,你必须精通的不能再精通一门语言才行(有点说大了哈),但是最起码你要如鱼得水吧,我准备的资料有: JAVA编程思想 深入浅出JAVA 黑马,传智,慕课,极客学院等-的视频 Google搜索 我们既然是重新学一遍,那我们尽量就是用记事本去敲代码好了,这里我用notep

大数进制转换问题

在数据结构课关于栈的这一章中,我们都学过用"模2取余法"来将一个10进制数转换为一个二进制数,进而可以推广到"模n取余法",经其转换为n进制(n任意指定). 确实,这是一个很基础的题目,可你是否想过如果这个10进制数是一个大数(其位数可能上千位,此时用一般数据类型肯定是会溢出的),那么这个问题又如何来求解呢? 当然,也许你会说很简单嘛,自己写一个大数类(当然至少要写一个大数除法才行),或者你用的是Java这种现代化语言,就更轻松了,直接用BigInteger这样的大

ACM——进制转换

http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1012 进制转换 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:1362            测试通过:395 描述 将一个十进制数N转换成R进制数输出,2≤R≤16,R≠10. 输入 多行.第一行指出以下一共有多少组数据,后续每行包含两个整数N和R,以空格分隔,-100000

进制转换--Java实现

题目详情 我们通常用的十进制数包含0-9十个数字.假设有一种进制系统包含3种数字,从低到高分别为"oF8",那么从1到9分别表示为F, 8, Fo, FF, F8, 8o, 8F, 88, Foo.给定一种进制的数和两种进制的数字表,请把它从第一种进制转换为第二种进制. 输入格式: 第一行是T表示测测试数据组数.(0<T<=200). 以后T行,每行有3个部分: number number_table1 number_table2 其中number_table1和numbe

hdu 2031 进制转换

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2031 题目大意:进制转换,先变成十进制在进行进制间的转化. 1 #include<stdio.h> 2 int main() 3 { 4 int n,m,i,j,f,p; 5 char a[200]; 6 while(scanf("%d%d",&n,&m)!=EOF) 7 { 8 i=0; 9 p=0; 10 if(n<0) 11 { 12 p=-1; 1