Trang chủ Tin Học Lớp 12 [THỬ THÁCH CHO trumtinhoc và những người khác] Ngôn ngữ:...

[THỬ THÁCH CHO trumtinhoc và những người khác] Ngôn ngữ: C++ Hãy lập trình một keygen (phần mềm tạo mã số) Dạng mã số (key): XXX-YYYYYYY Luật mã số: - ba số đầ

Câu hỏi :

[THỬ THÁCH CHO trumtinhoc và những người khác] Ngôn ngữ: C++ Hãy lập trình một keygen (phần mềm tạo mã số) Dạng mã số (key): XXX-YYYYYYY Luật mã số: - ba số đầu tiên (XXX) KHÔNG ĐƯỢC BAO GỒM CÁC SỐ TRÊN: 333, 444, 555, 666, 777, 888, 999 - bảy số cuối (YYYYYYY) tất cả chữ số cộng lại PHẢI CHIA HẾT CHO 7 và chữ số cuối KHÔNG BAO GỒM 0 hay ≥8 Luật lập trình: không được dùng header bất kỳ, không được copy qua mạng (ví dụ: github, pastebin) Ví dụ: 527-7043007 527 ≠ 333; 444; 555; 666; 777; 888; 999 ⇒ hợp lệ 7043007 7+0+4+3+0+0+7 = 21 21 / 7 = 3 (chia hết) 7 là số cuối của 7043007, 7

Lời giải 1 :

#include <bits/stdc++.h>
using namespace std;

int getx(){
 srand(time(NULL));
 int kq=rand()%(999-100+1)+100;
 if (kq==333 || kq==444 || kq==555 || kq==666 || kq==777 || kq==888 ||  kq==999)
    return getx();
 return kq; 
}

bool kt(int n){
 bool kq=0;
 int s=0;
 while (n!=0) {
  s+=n%10;
  n/=10;
 }
 return (s%7==0);
}

int gety(){
 srand(time(0));
 int kq=rand()%(9999999-1000000+1)+1000000, t=0;
   while (kq%10==0 || kq%10>=8 || !kt(kq)) ++kq;
   return kq;
}

int main()
{
 ios_base::sync_with_stdio(0);
 cin.tie(0);cout.tie(0);
 cout<<getx()<<"-"<<gety();
}

Thảo luận

-- đỉnh cao

Lời giải 2 :

#include <iostream>
using namespace std;

#define ll long long
#define ord(a) int(a)

int x, y;

int sumDigits(int n) {
    string s = to_string(n);
    ll res = 0;
    
    for(int i = 0; i < s.size(); ++i) res += ord(s[i]) - 48;
    return res;
}

void xKey() {
    srand(time(NULL));
    x = rand() % (999 - 100 + 1) + 100;
    while(x == 333 && x == 444
        && x == 555 && x == 666
            && x == 777
                && x == 888 && x == 999) --x;
}

void yKey() {
    srand(time(NULL));
    y = rand() % (9999999 - 1000000 + 1) + 1000000;
    while((y % 10 == 0 || y % 10 >= 8) || sumDigits(y) % 7 != 0) --y;
}

int main() {
    xKey();
    yKey();
    cout << x << '-' << y;
}

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 12

Lớp 12 - Năm cuối ở cấp tiểu học, năm học quan trọng nhất trong đời học sinh trải qua bao năm học tập, bao nhiêu kì vọng của người thân xung quanh ta. Những nỗi lo về thi đại học và định hướng tương lai thật là nặng. Hãy tin vào bản thân là mình sẽ làm được rồi tương lai mới chờ đợi các em!

Nguồn : ADMIN :))

Copyright © 2021 HOCTAP247