超出时间限制错误codechef

时间:2016-05-21 06:34:03

标签: time-complexity

这是个问题    如果给一个整数N.编写程序以获得该数字的第一位和最后一位的总和。

输入

第一行包含整数T,测试用例总数。然后按照T行,每行包含一个整数N.     输出

显示N的第一位和最后一位的总和。    约束

1≤T≤1000    1≤N≤1000000

实施例

输入   3   1234   124894   242323

输出   五   五   5

这是我的代码,当我提交代码时,它显示TLE错误。我认为我的代码的复杂性是O(1)因为只要输入数字就会计算总和。我想我正在计算复杂性错了。对此的一些帮助会很棒。欢呼!

#include<iostream>
#include<vector>
#include<math.h>
#include<stdio.h>
using namespace std;


int main()
{
    char first,chr,chr_prv,temp;
    int test;
    cin>>test;
    temp=getchar(); // just to ignore the /n after cin>>test
    for(int i=0;i<test;i++)
    {

    int count=0;
    do
    {

        chr_prv=chr;
        chr=getchar();
        if(count==0)
            first=chr;
        count++;
    }while(chr!='\n');
    cout<<(int(first)+int(chr_prv)-96)<<endl;

    }
  return 0;
}

1 个答案:

答案 0 :(得分:0)

你正逐字逐句输入。我建议将整数作为单个整数输入,只需添加数字%10和数字/ str(数字).length()。回来结果:)(我故意给出一个提示而不是整个代码,因为它是一个codechef问题)