Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tkinter as tk
- import tkinter.messagebox as messagebox
- def generate_S_N():
- results_text.delete("1.0", tk.END) # Clear previous results
- start_num = int(start_entry.get())
- end_num = int(end_entry.get())
- if start_num > end_num:
- messagebox.showwarning("Invalid Range", "The start number cannot be greater than the end number.")
- return
- for n in range(start_num, end_num + 1):
- B = str(n)
- n_digits = len(B)
- B_digits = [int(digit) for digit in B]
- possible_A = find_possible_A(B_digits)
- num_elements = len(possible_A)
- sum_A = sum(possible_A)
- result_str = f"For B = {B}, S({B}) = {sum_A}, N({B}) = {num_elements}"
- results_text.insert(tk.END, result_str + "\n")
- def find_possible_A(B_digits):
- n = len(B_digits)
- possible_A = []
- for i in range(10**(n+1)):
- A_digits = [int(digit) for digit in str(i).zfill(n+1)] # Convert i to a list of digits
- conditions_met = True
- for j in range(n):
- if abs(A_digits[j+1] - A_digits[j]) != B_digits[j]:
- conditions_met = False
- break
- if conditions_met:
- possible_A.append(i)
- return possible_A
- def copy_results():
- results = results_text.get("1.0", tk.END)
- if results:
- window.clipboard_clear()
- window.clipboard_append(results)
- messagebox.showinfo("Results Copied", "The results have been copied to the clipboard.")
- else:
- messagebox.showwarning("No Results", "No results to copy.")
- def clear_results():
- results_text.delete("1.0", tk.END)
- # Create the main window
- window = tk.Tk()
- window.title("Sum and Count of Outputs")
- # Create entry labels and input boxes
- entry_frame = tk.Frame(window)
- entry_frame.pack(pady=10)
- start_label = tk.Label(entry_frame, text="Start Number:")
- start_label.grid(row=0, column=0, padx=5)
- start_entry = tk.Entry(entry_frame)
- start_entry.grid(row=0, column=1, padx=5)
- end_label = tk.Label(entry_frame, text="End Number:")
- end_label.grid(row=1, column=0, padx=5)
- end_entry = tk.Entry(entry_frame)
- end_entry.grid(row=1, column=1, padx=5)
- # Create generate, copy, and clear buttons
- button_frame = tk.Frame(window)
- button_frame.pack(pady=10)
- generate_button = tk.Button(button_frame, text="Generate", command=generate_S_N)
- generate_button.grid(row=0, column=0, padx=5)
- copy_button = tk.Button(button_frame, text="Copy Results", command=copy_results)
- copy_button.grid(row=0, column=1, padx=5)
- clear_button = tk.Button(button_frame, text="Clear Results", command=clear_results)
- clear_button.grid(row=0, column=2, padx=5)
- # Create text area to display results
- results_text = tk.Text(window, width=50, height=10)
- results_text.pack()
- # Run the GUI
- window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement