2016-04-09 11 views
-3

1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 eklenmesi ve geribir dizi içindeki numaraları ekleyin birlikte

cevabı almanın sayısal olarak verimli yolu var mı numara 12345678

var ki mümkünse bir şey daha verimli istediğiniz gibi

İdeal string bölünme ve ayrıştırmayı önleyeceğini

DÜZENLEME:

Bu sorunun amacı det bir hesaplama daha hızlı yol bulmak Bir sayı 3 ile bölünebilir veya yükü azaltmak için ise ermin modülü beslenen sayısı bir sayı tüm basamak eklemek halinde, sonuç, daha sonra 3 ile ayrılabilir bildiren bir yöntem yoktur

bir faktör olup olmadığını kontrol etmek için. yerine 12345678 kontrol etme 36

Böylece bir etken ise Dolayısıyla bu şekilde, o ... 10, 100 tarafından vb tam sayı bölmek için sayaç intiuative olacağını yanı sıra dizeleri kullanmak, kontrol ederim

+0

Yani tüm rakamları birlikte eklemek istersiniz? – Tunaki

+0

evet ama mümkün olduğunca verimli olmasını istiyorum, böylelikle eğer bu algoritma binlerce kez çalıştırılacağından ve mümkünse her küçük bit fark yarattığından bölümlere ayrıştırma ve ayrıştırma yok – Gabrielus

+0

* Bu * Kod Gözden Geçirme hakkında * bunu yapamazsınız. Kod yok. – nhgrif

cevap

1

Dizeye ayrışmaya gerek yok.

int sum=0; 
while(n>0) 
{ 
    sum += n%10; // add the last digit 
    n/=10; // remove the last digit. 
} 
+0

Evet, ama bölünmekten kaçınmak istiyor. –

+0

Hayır, @ ĐăngKhoaHuỳnh, o mümkün olduğunca verimli bir şey ister ve bölünmenin en etkili yol olmadığını düşünmekle potansiyel olarak yanılır. – nhgrif

+0

Yani bölümleri kullanmadan bölümleri ayırmanın bir yolu yok mu? – Gabrielus

İlgili konular