zoukankan      html  css  js  c++  java
  • 水题46

    题目描述

    读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)位数字相同,请直接输出-1。

     
    输入

    测试输入包含若干测试用例,每个测试用例占一行,格式为"A B K",相邻两数字有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。

     
    输出

    对每个测试用例输出1行,即A+B的值或者是-1。

     
    样例输入
    2 3 1
    12 22 1
    11 111 2
    0 0 2
     
    样例输出
    5
    -1
    -1
     
    提示 [+]

    *** 提示已隐藏,点击上方 [+] 可显示 ***

     
    来源

    2006年浙江大学计算机及软件工程研究生机试真题

    #include<cstdio>
    #include<cmath>
    int main()
    {
        int a, b,k;
        while(scanf("%d%d%d",&a,&b,&k) != EOF)
        {
            if(a == 0 && b == 0)
                break;
            int tmp = pow(10,k);
            if(a % tmp == b % tmp)
                printf("-1\n");
            else
                printf("%d\n",a + b);
        }
        return 0;
    }

    题目描述

    守形数是这样一种整数,它的平方的低位部分等于它本身。
    比如25的平方是625,低位部分是25,因此25是一个守形数。
    编一个程序,判断N是否为守形数。

     
    输入

    输入包括1个整数N,2<=N<100。

     
    输出

    可能有多组测试数据,对于每组数据,
    输出"Yes!”表示N是守形数。
    输出"No!”表示N不是守形数。

     
    样例输入
    6
    11
     
    样例输出
    Yes!
    No!
     
    提示 [+]

    *** 提示已隐藏,点击上方 [+] 可显示 ***

     
    来源
     
    #include<iostream>
    #include<string>
    #include<cmath>
    using namespace std;
    int main()
    {
        string s;
        while(cin >> s)
        {
            int x = 0;;
            for(int i = 0; i != s.size(); i ++)
            {
                x = x * 10 + s[i] - '0'; 
            }
            int y = x * x;
            int tmp = pow(10,s.size());
            if(y % tmp == x)
                cout << "Yes!" << endl;
            else
                cout << "No!" << endl;
        }
        return 0;
    }

    题目描述

    写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5
     
    输入

     两个小于1000000000的数

     
    输出

     输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。

     
    样例输入
    24 65
    42 66666
    3 67
     
    样例输出
    66
    180
    39
     
    提示 [+]

    *** 提示已隐藏,点击上方 [+] 可显示 ***

     
    来源

    2010年清华大学计算机研究生机试真题

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
        string a,b;
        while(cin >> a >> b)
        {
            long long x = 0;
            for(int i = 0; i != a.size(); i ++)
            {
                for(int j = 0; j != b.size(); j ++)
                {
                    x += (a[i] - '0') * (b[j] - '0');    
                }    
            }
            cout << x << endl;
        }
        return 0;
    }

    题目描述

    输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。

     
    输入

    输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
    当m为0时输入结束。

     
    输出

    输出格式:每个测试用例的输出占一行,输出A+B的m进制数。

     
    样例输入
    2 4 5
    8 123 456
    0
     
    样例输出
    1001
    1103
     
    提示 [+]

    *** 提示已隐藏,点击上方 [+] 可显示 ***

     
    来源
    #include<iostream>
    using namespace std;
    void trans_k(long long x, int k)
    {
        if(x > 0)
        {
            trans_k(x / k, k);
            cout << x % k;
        }
    }
    int main()
    {
        int k;
        long long a, b;
        while(cin >> k)
        {
            if(k == 0)
                break;
            cin >> a >> b;
            a += b;
            if(a != 0)
                trans_k(a ,k);
            else
                cout << "0";
            cout << endl;
        }
        return 0;
    }

    题目描述

    求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
    不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。

     
    输入

    输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。

     
    输出

    可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。

     
    样例输入
    4 123 10
     
    样例输出
    27
     
    提示 [+]

    *** 提示已隐藏,点击上方 [+] 可显示 ***

     
    来源

    2008年北京大学图形实验室计算机研究生机试真题

    #include<iostream>
    #include<string>
    #include<cctype>
    using namespace std;
    void trans_y(long long a, int y)
    {
        if(a > 0)
        {
            trans_y(a / y , y);
            int tmp = a % y;
            switch (tmp)
            {
                case 10: cout << "A"; break;
                case 11: cout << "B"; break;
                case 12: cout << "C"; break;
                case 13: cout << "D"; break;
                case 14: cout << "E"; break;
                case 15: cout << "F"; break;
                default:
                    cout << tmp;
            }
        }
    }
    int main()
    {
        int x,y;
        string s;
        while(cin >> x >> s >> y)
        {
            long long a = 0;
            for(size_t i = 0; i != s.size(); i ++)
            {
                if(isalpha(s[i]))
                {
                    s[i] = toupper(s[i]);
                    a = a * x + s[i] - 'A' + 10;
                }
                else
                {
                    s[i] = s[i] - '0';
                    a = a * x + s[i];
                }
            }
            if(a == 0)
                cout << "0";
            else
                trans_y(a,y);
            cout << endl;
        }
        return 0;
    }
  • 相关阅读:
    share point 已在此服务器场中安装 ID 为 15/b7a69889-1789-4855-b8bd-9a3b4cfd7fc0 的功能。请使用强制属性显式地重新安装此功能。
    给一个div添加多个背景图片
    input输入框,在手机上,软键盘会将固定定位和绝对定位的按钮顶起,解决办法
    js判断浏览器,设备类型
    js中函数function的三种定义方式,声明式定义函数、函数表达式、立即执行函数的区别
    vue项目里面,__ob__对象的理解
    浏览器渲染过程-面试
    MySQL的连接查询:left join , right join , join
    MYSQL实现连表查询
    node后台koa2项目,如何发布到服务器?入门学习
  • 原文地址:https://www.cnblogs.com/lgy6534588/p/3003143.html
Copyright © 2011-2022 走看看