Hướng dẫn compare two large numbers c++ - so sánh hai số lớn c ++

Chúng ta có thể sử dụng các loại dữ liệu sẵn có để so sánh hai số nguyên phù hợp với phạm vi của loại dữ liệu tương ứng. Như bạn đã biết, có giới hạn số nguyên tối đa có thể được lưu trữ trong một loại dữ liệu. Chúng tôi sẽ sử dụng các chuỗi để lưu trữ số nguyên và sau đó tạo một hàm để so sánh các số nguyên. Một số nguyên có thể là tích cực, bằng không hoặc âm, chúng tôi sẽ chăm sóc nó trong chương trình của chúng tôi.

Thuật toán so sánh:

Nếu cả hai số là dương: nếu độ dài của một trong số chúng lớn hơn số khác, số lượng lớn hơn là lớn hơn. Nếu độ dài của cả hai là giống nhau thì chúng tôi so sánh các chữ số riêng lẻ của cả hai số, nếu bất kỳ chữ số nào của đầu tiên là lớn hơn thì số thứ hai thì đầu tiên lớn hơn và ngược lại. Nếu cả hai chữ số đều bằng nhau thì chúng ta sẽ chuyển sang các chữ số tiếp theo. Nếu chuỗi kết thúc thì cả hai số đều bằng nhau.

Nếu bất cứ ai trong số là âm thì số dương là số lớn hơn.

Nếu cả hai số đều âm thì logic giống với số so sánh các số dương ngoại trừ một thứ: số có độ lớn nhỏ hơn là số lớn hơn.

C chương trình để so sánh các số bằng chuỗi

#include #include
#include

int so sánh [char [], char []]; compare[char [], char []];

int main [] {& nbsp; char a [1000], b [1000]; & nbsp; int n; main[]
{
  char a[1000], b[1000];
  int n;

& nbsp; printf ["Nhập hai số nguyên \ n"];printf["Enter two integers\n"];

& nbsp; Scanf ["%s%s", a, b];scanf["%s%s", a, b];

& nbsp; n = so sánh [a, b];= compare[a, b];

& nbsp; if [n == 1] & nbsp; & nbsp; printf ["Đầu tiên. \ n"]; & nbsp; otherif [n == 0] & nbsp; & nbsp; printf ["bằng nhau. \ n"]; & nbsp; khác & nbsp; & nbsp; printf ["thứ hai. \ n"];if [n == 1]
    printf["First.\n"];
  else if [n == 0]
    printf["Equal.\n"];
  else
    printf["Second.\n"];

& nbsp; return0;}return 0;
}

int so sánh [char a [], char b []] {& nbsp; int L1, L2, P1, P2, N; compare[char a[], char b[]] {
  int l1, l2, p1, p2, n;

& nbsp; // Kiểm tra xem bất kỳ số nào có âm không// Checking if any of the numbers is negative

& nbsp; if [a [0] == '-'] & nbsp; & nbsp; p1 = 0; & nbsp; khác & nbsp; & nbsp; P1 = 1;if [a[0] == '-']
    p1 = 0;
  else
    p1 = 1;

& nbsp; if [b [0] == '-'] & nbsp; & nbsp; p2 = 0; & nbsp; khác & nbsp; & nbsp; P2 = 1;if [b[0] == '-']
    p2 = 0;
  else
    p2 = 1;

& nbsp; // Tính độ dài của chuỗi// Calculating length of strings

& nbsp; l1 = strlen [a]; & nbsp; l2 = strlen [b];= strlen[a];
  l2 = strlen[b];

& nbsp; // cả hai số dương// Both numbers positive

& nbsp; if [p1 == 1 && p2 == 1] {& nbsp; & nbsp; if [l1> l2] & nbsp; & nbsp; & nbsp; return1; & nbsp; & nbsp; otherif [l2> l1] & nbsp; & nbsp; & nbsp; return2; & nbsp; & nbsp; khác {& nbsp; & nbsp; & nbsp; for [n = 0; n b [n]] & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; return1; & nbsp; & nbsp; & nbsp; & nbsp; if [b [n]> a [n]] & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; return2; & nbsp; & nbsp; & nbsp; } & nbsp; & nbsp; & nbsp; if [n == l1] & nbsp; // có thể được xóa [tùy chọn] & nbsp; & nbsp; & nbsp; & nbsp; return0; & nbsp; & nbsp; } & nbsp; }if [p1 == 1 && p2 == 1] {
    if [l1 > l2]
      return 1;
    else if [l2 > l1]
      return 2;
    else {
      for [n = 0; n b[n]]
          return 1;
        if [b[n] > a[n]]
          return 2;
      }
      if [n == l1]  // Can be removed [optional]
        return 0;
    }
  }

& nbsp; // Nếu một số là dương và số khác là âm// If one number is positive and other is negative

& nbsp; if [p1 == 1 && p2 == 0] // đầu tiên không có tích cực & nbsp; & nbsp; return1; & nbsp; if [p1 == 0 && p2 == 1] // thứ 2 không có tích cực & nbsp; & nbsp; return2;if [p1 == 1 && p2 == 0] // 1st no positive
    return 1;
  if [p1 == 0 && p2 == 1] // 2nd no positive
    return 2;

& nbsp; // Nếu cả hai số âm âm// If both numbers negative

& nbsp; Nếu [l1if [l1

Bài Viết Liên Quan

Chủ Đề