Merhaba THT Ailesi , kendimi C dilinde geliştirmeye odaklanmış sıradan biriyim son günlerde kendimi ders konularına bakıp , alıştırma algoritmaları oluşturarak ilerliyorum. Son günlerde şifreleme üzerine yoğunlaşmaya başladım ve kuramadığım bir algoritma üzerine yardım istemeye karar verdim.
Algoritmanın temel mantığı kullanıcı tarafından girilen sayıyı şifreleyip output olarak yazdırmak , şifrelemenin mantığı şu şekilde ;
kullanıcı inputu : 01234
program output'u : 011222344
şöyle ki ; input içindeki her sayının 3 ile modunu alarak kalan kadar sayıyı tekrarlıyor yani ,
* 0 % 3= 0 yani 0 kendini hiç tekrar etmeden sadece 1 kere 0 yazdırıyor.
*1%3 =1 şifre içindeki 1 kendini 1 kere tekrar ediyor yani output'ta yazılması gereken 1 rakamı 2 tane oluyor.
*2%3=2 şifre içinde 2 'nin 2 kere daha yazılması lazım yani input = 2 için output=222 oluyor.
*3%3=0 kalan 0 olduğu için 3 sadece 1 kere yazılıyor program böyle devam edip gidiyor.
yazdığım kodda belirli başlı eksikler var öncelikle her seferinde mod 10 alarak azalttığım için şifre ters oluyor ve başa 0 lı kod yazınca 0 ' ı yazdırmıyor.
yani ,
input : 0123
output : 322211 olarak çıkıyor bunun üstesinden gelemedim. Kod şu şekilde ;
Şimdiden yardımlarınız için teşekkür ediyorum arkadaşlar ayrıca algoritma mantığını nasıl geliştirebilirim bununla ilgili kaynak önerirseniz sevinirim iyi günler.
Algoritmanın temel mantığı kullanıcı tarafından girilen sayıyı şifreleyip output olarak yazdırmak , şifrelemenin mantığı şu şekilde ;
kullanıcı inputu : 01234
program output'u : 011222344
şöyle ki ; input içindeki her sayının 3 ile modunu alarak kalan kadar sayıyı tekrarlıyor yani ,
* 0 % 3= 0 yani 0 kendini hiç tekrar etmeden sadece 1 kere 0 yazdırıyor.
*1%3 =1 şifre içindeki 1 kendini 1 kere tekrar ediyor yani output'ta yazılması gereken 1 rakamı 2 tane oluyor.
*2%3=2 şifre içinde 2 'nin 2 kere daha yazılması lazım yani input = 2 için output=222 oluyor.
*3%3=0 kalan 0 olduğu için 3 sadece 1 kere yazılıyor program böyle devam edip gidiyor.
yazdığım kodda belirli başlı eksikler var öncelikle her seferinde mod 10 alarak azalttığım için şifre ters oluyor ve başa 0 lı kod yazınca 0 ' ı yazdırmıyor.
yani ,
input : 0123
output : 322211 olarak çıkıyor bunun üstesinden gelemedim. Kod şu şekilde ;
Kod:
#include <stdio.h>
#include <stdlib.h>
int main() {
int a,mod,rakam;
printf("Lutfen inputu giriniz : ");
scanf("%d",&a);
printf("\n");
while (a>0) {
rakam=a%10;
a=a/10;
mod =rakam%3;
for (;mod>=0;mod--) {
printf("%d",rakam);
}
}
}
Şimdiden yardımlarınız için teşekkür ediyorum arkadaşlar ayrıca algoritma mantığını nasıl geliştirebilirim bununla ilgili kaynak önerirseniz sevinirim iyi günler.
Moderatör tarafında düzenlendi: