• 特殊乘法


    题目描述

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

    输入描述:

    两个小于1000000000的数

    输出描述:

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

    示例1

    输入

    123 45
    

    输出

    54

    解题思路

    题目的意思是要对两个整数,分别取其某一位数相乘再相加。

    那么首先使用string 类型存放两个数,再将其用取字符串中字符的方式,将每一位数(字符)取出,再转化为对应的整数。

     1 #include <stdio.h>
     2 #include <iostream>
     3 #include <string>
     4 
     5 using namespace std;
     6 int main()
     7 {
     8     string x,y;
     9     while(cin >> x >> y)
    10     {
    11         int sum = 0;
    12         for(int i = 0;i<x.length();i++)
    13             for(int j = 0;j<y.length();j++)
    14             {
    15                 sum = (x[i]-'0')* (y[j]-'0') + sum;
    16             } 
    17         cout << sum;
    18     }
    19 }

    Summary

    1、对于该题目还有其他的解法,但是使用string类型来存放数据是占用内存较小的方式。

    2、对于C++中的string类型,取其字符串长度的方式是 x.length()

    3、将字符类型整数转化为对应的整数的方式就是直接减去'0' 字符。


    在这里我总结一下C++中, sizeof(),strlen(),size(),length() 的区别

    sizeof()

    sizeof():返回所占总空间的字节数

    sizeof(...)是运算符,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。

    strlen()

    strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符''。返回的长度大小不包括''。

    size() 和 length()

    c++中的size()和length()没有区别,都是用来计算string类对象的长度,假如有一个string对象str,则str.size()和str.length()会返回它们的长度,它们的作用是相同的


    c/c++ strlen(str)str.length()str.size()都可以求字符串长度。
    其中str.length()和str.size()是用于求string类对象的成员函数
    strlen(str)是用于求字符数组的长度,其参数是char*。

  • 相关阅读:
    drf之频率器拓展
    drf之分页器
    drf之异常处理
    drf之过滤与排序
    drf之频率
    drf之权限
    drf之认证
    drf之路由
    drf之视图家族
    性能优化
  • 原文地址:https://www.cnblogs.com/jiashun/p/newcode14.html
Copyright © 2020-2023  润新知