Tam giác số (THTA Đồng Nai 2022)

Xem PDF



Thời gian:
Scratch 5.0s

Tác giả:
Dạng bài
Điểm: 200 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho tam giác số như sau:

hàng 1: 1
hàng 2: 2 3
hàng 3: 4 5 6
hàng 4: 7 8 9 10
....

Yêu cầu: Cho số nguyên dương \(n\), hãy in ra số đầu tiên hàng thứ \(n\) của tam giác số.

Input

  • Một dòng chứa số nguyên dương \(n\ (n \le 10.000.000.000)\).

Output

  • In ra số đầu tiên hàng thứ \(n\) của tam giác số.

Example

Test 1

Input
4
Output
7

Test 2

Input
6
Output
16

Bình luận

  • hoangtrongltv 11:19 a.m. 27 Tháng 11, 2024 chỉnh sửa 2

    include <iostream>

    using namespace std;

    string cong(string a, string b){
    while(a.length()<b.length()) a='0'+a; while(b.length()\<a.length()) b='0'+b; int n=a.length(); string kq=""; int csa, csb, cs, tmp, nho=0; for(int i=n-1;i>=0;i--){ csa=a[i]-48; csb=b[i]-48; tmp=csa+csb+nho; cs=tmp%10; nho=tmp/10; kq=char(cs+48)+kq; } if(nho) kq=char(nho+48)+kq; while(kq.length()>1 && kq[0]=='0') kq.erase(0, 1);
    return kq;
    }
    string nhan(string a, string b){
    string res="0", res_tmp="";
    int csa, csb, cs, nho=0, tmp;
    for(int i=b.length()-1;i>=0;i--){
    for(int j=a.length()-1;j>=0;j--){
    csa=a[j]-48;
    csb=b[i]-48;
    tmp=csa*csb+nho;
    cs=tmp%10;
    nho=tmp/10;
    res_tmp=char(cs+48)+res_tmp;
    }
    res_tmp+=string(b.length()-i-1, '0');
    if(nho) res_tmp=char(nho+48)+res_tmp;

        while(res_tmp.length()>1 && res_tmp[0]=='0') res.erase(0, 1);
    
        res=cong(res, res_tmp);
    
        nho=0;
        res_tmp="";
    }
    return res;
    

    }
    string chia_cho_2(string a){
    string res="";
    int cs=0;
    for(int i=0;i<a.length();i++){ cs=10*cs+a[i]-48; if(cs>=2){
    res+=char(cs/2+48);
    cs=cs%2;
    }
    else res+='0';
    }
    while(res.length()>1 && res[0]=='0') res.erase(0, 1);
    return res;
    }
    string tru_cho_1(string s){
    int i=s.length()-1;
    while(s[i]=='0' && i>=0){
    s[i]='9';
    i--;
    }
    s[i]=s[i]-1;
    return s;
    }
    int main()
    {

    string s, t, res="1";
    cin>>s;
    t=tru_cho_1(s);
    cout<<cong( res, chia_cho_2( nhan(s, t) ) );
    return 0;
    

    }

    • 9 bình luận nữa