| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1482 人关注过本帖, 1 人收藏
标题:这道题可以用字符串做吗?
只看楼主 加入收藏
ClearningC
Rank: 2
等 级:论坛游民
帖 子:98
专家分:43
注 册:2016-10-26
结帖率:89.47%
收藏(1)
已结贴  问题点数:20 回复次数:13 
这道题可以用字符串做吗?
Details
In the first line of the input is a number n (1 <= n <= 10) representing the number of the test cases.
Each of the following n lines consists of two integers a and b (1 <= a, b <= 10000000), where a is the one to be reversed, and b is the divisor to be used to get the remainder.
5
12345 10
2345 32
43245 98
83929 231
1 2
In this input:
There are five test cases.
In the first test case, output the reversed number of 12345, namely 54321, and then output the remainder of 54321 / 10, namely 1.
In the second test case, output the reversed number of 2345, namely 5432, and then output the remainder of 5432 / 32, namely 24
...
And the corresponding output would be:
54321 1
5432 24
54234 40
92938 76
1 1
Note: the reversed number of 500 would be 005. Numbers beginning with 0 such as 005 will not be given in the input for simplicity.
2017-01-02 15:38
ClearningC
Rank: 2
等 级:论坛游民
帖 子:98
专家分:43
注 册:2016-10-26
收藏
得分:0 
下面是我写的代码,但是最后求模哪里不知道怎么算?(不知道能不能将字符串转换成为数字)
帮我指正一下吧,谢谢啦!
程序代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
    int n; 
    scanf("%d",&n);
    char s[101],ch;
    int a,input;
    int i,j,length,l,x=0;
    for(i=1;i<=n;i++)
    {
        scanf("%s%d",s,&a);//输入第一个数和第二个数 
    length=strlen(s);//求第一个数的长度 
        for(j=0;j<length/2;j++)//将第一个数的顺序交换 
        {
            ch=s[j];
            s[j]=s[length-j-1];
            s[length-j-1]=ch;
        }
        printf("%s ",s);
        l=length-1;
        for(j=0;j<length;j++)
        {
            x+=s[j]*pow(10,l);printf("%d ",x);
            l--;
        }
        input=x%a;//求模,即最后输出的那个数 
        printf("%d\n",input);
        
    }
    return 0;
}
2017-01-02 15:42
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
因为涉及到除法,好像用字符串做优势不是很大,如果没有超过int的数据范围还是用int型输入较好~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-02 15:46
ClearningC
Rank: 2
等 级:论坛游民
帖 子:98
专家分:43
注 册:2016-10-26
收藏
得分:0 
回复 3楼 九转星河
但是我觉得用int的话,调换顺序好像会很麻烦。所以我想如果用字符串可能会简洁一点。
2017-01-02 15:48
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
对了 顺便带一句,试试用itoa函数或者atoi函数~这其中一个是把字符串转化为int型的功能~如果不会用可以去查查资料~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-02 15:49
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:0 
#include<stdio.h>

int _inverse(int n)  
{
    int m=0, a;
    while(n > 0)
    {
        a = n % 10;
        m = m * 10 + a;
        n = n / 10;
    }
    return m;
}

main()
{
    int i, n, a, b;
    scanf("%d", &n);
    for(i=0; i<n; i++)
    {
        scanf("%d%d", &a,&b);
        a = _inverse(a);
        printf("%d %d\n", a, a%b);
    }
}
2017-01-02 16:30
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:5 
#include<stdio.h>
int main()
{
    int n,result=0;
    printf("请输入:");
    scanf("%d",&n);
    while(n)
    {
        result*=10;
        result+=(n%10);
        n/=10;
    }
    printf("result=%d\n",result);
    return 0;
}
//逆序这样实现吧,不推荐用字符串
2017-01-02 16:44
ClearningC
Rank: 2
等 级:论坛游民
帖 子:98
专家分:43
注 册:2016-10-26
收藏
得分:0 
回复 6楼 吹水佬
理解了,谢谢!
在这道题目里,它还有一个要求,就是,
比如输入12345000,
那么需要输出00054321.
这里面如果只是用int类型的话,输出时前面的0会掉了,
我想,如果是用依次加上去的话,这个应该无法避免的。
所以应该如何解决?(如果不使用字符串的话)
2017-01-02 17:39
ClearningC
Rank: 2
等 级:论坛游民
帖 子:98
专家分:43
注 册:2016-10-26
收藏
得分:0 
回复 7楼 yangfrancis
理解了,谢谢!
在这道题目里,它还有一个要求,就是,
比如输入12345000,
那么需要输出00054321.
这里面如果只是用int类型的话,输出时前面的0会掉了,
我想,如果是用依次加上去的话,这个应该无法避免的。
所以应该如何解决?(如果不使用字符串的话)
2017-01-02 17:40
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:5 
%04d就是可以满足输出4位,不足可以在前面补0~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-02 18:31
快速回复:这道题可以用字符串做吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057707 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved