#include<stdio.h>
int main(){
int i,j,k;
int target;
int temp = 0;
int des = 0;
char number[1000005];
for(i = 1;i <= 1000000;i++)
number[i] = '0';
//printf("Test");
for(i = 1;i < 1000000;i++){
for(target = i;target <= 1000000;temp = 0,des = 0){
des = target;
while(target >= 10){
temp += target % 10;
target /= 10;
//printf("temp:%d target:%d\n",temp,target);
}
//printf("End");
des += target;
if(des < 10)
target += target;
else{
target = des + temp;
}
//printf("%d %d\n",i,target);
if(target <= 1000000)
number[target] = '1';
else
break;
}
//i = 1000000;
//printf("%d\n",i);
}
/*for(i = 0;;i++)
printf("%s",number[i]);*/
//printf("Test");
for(i = 1;i <= 1000000;i++){
if(number[i] == '0')
printf("%d\n",i);
}
return 0;
}
我的程式跑不出while,但把次數改小就可以,/跟%調換的話也可以,但現在也跑不出來,懇請各位大神幫忙!!
#include
int main(){
int i,j,k;
int target;
int temp = 0;
int des = 0;
char number[1000005];
for(i = 1;i <= 1000000;i++)
number[i] = '0';
//printf("Test");
for(i = 1;i < 1000000;i++){
for(target = i;target <= 1000000;temp = 0,des = 0){
des = target;
while(target >= 10){
temp += target % 10;
target /= 10;
//printf("temp:%d target:%d\n",temp,target);
}
//printf("End");
des += target;
if(des < 10)
target += target;
else{
target = des + temp;
}
//printf("%d %d\n",i,target);
if(target <= 1000000)
number[target] = '1';
else
break;
}
//i = 1000000;
//printf("%d\n",i);
}
/*for(i = 0;;i++)
printf("%s",number[i]);*/
//printf("Test");
for(i = 1;i <= 1000000;i++){
if(number[i] == '0')
printf("%d\n",i);
}
return 0;
}
我的程式跑不出while,但把次數改小就可以,/跟%調換的話也可以,但現在也跑不出來,懇請各位大神幫忙!!
你的第12行 for(target = i;target <= 1000000;temp = 0,des = 0)
其實我看不太懂你的程式碼,不過我猜測你的target應該是跟著i跑的,所以你的target大小不應該每次都讓他跑到1000000。(我改動一個地方就AC了)
#include
int main(){
int i,j,k;
int target;
int temp = 0;
int des = 0;
char number[1000005];
for(i = 1;i <= 1000000;i++)
number[i] = '0';
//printf("Test");
for(i = 1;i < 1000000;i++){
for(target = i;target <= 1000000;temp = 0,des = 0){
des = target;
while(target >= 10){
temp += target % 10;
target /= 10;
//printf("temp:%d target:%d\n",temp,target);
}
//printf("End");
des += target;
if(des < 10)
target += target;
else{
target = des + temp;
}
//printf("%d %d\n",i,target);
if(target <= 1000000)
number[target] = '1';
else
break;
}
//i = 1000000;
//printf("%d\n",i);
}
/*for(i = 0;;i++)
printf("%s",number[i]);*/
//printf("Test");
for(i = 1;i <= 1000000;i++){
if(number[i] == '0')
printf("%d\n",i);
}
return 0;
}
我的程式跑不出while,但把次數改小就可以,/跟%調換的話也可以,但現在也跑不出來,懇請各位大神幫忙!!
你的第12行 for(target = i;target <= 1000000;temp = 0,des = 0)
其實我看不太懂你的程式碼,不過我猜測你的target應該是跟著i跑的,所以你的target大小不應該每次都讓他跑到1000000。(我改動一個地方就AC了)
不好意思,小弟想了很久還是不太懂target跑到哪裡要停,如果不把target跑1000000有些數字會漏檢查到吧,請大神幫幫忙。
#include
int main(){
int i,j,k;
int target;
int temp = 0;
int des = 0;
char number[1000005];
for(i = 1;i <= 1000000;i++)
number[i] = '0';
//printf("Test");
for(i = 1;i < 1000000;i++){
for(target = i;target <= 1000000;temp = 0,des = 0){
des = target;
while(target >= 10){
temp += target % 10;
target /= 10;
//printf("temp:%d target:%d\n",temp,target);
}
//printf("End");
des += target;
if(des < 10)
target += target;
else{
target = des + temp;
}
//printf("%d %d\n",i,target);
if(target <= 1000000)
number[target] = '1';
else
break;
}
//i = 1000000;
//printf("%d\n",i);
}
/*for(i = 0;;i++)
printf("%s",number[i]);*/
//printf("Test");
for(i = 1;i <= 1000000;i++){
if(number[i] == '0')
printf("%d\n",i);
}
return 0;
}
我的程式跑不出while,但把次數改小就可以,/跟%調換的話也可以,但現在也跑不出來,懇請各位大神幫忙!!
你的第12行 for(target = i;target <= 1000000;temp = 0,des = 0)
其實我看不太懂你的程式碼,不過我猜測你的target應該是跟著i跑的,所以你的target大小不應該每次都讓他跑到1000000。(我改動一個地方就AC了)
不好意思,小弟想了很久還是不太懂target跑到哪裡要停,如果不把target跑1000000有些數字會漏檢查到吧,請大神幫幫忙。
我改這樣
for(target = i;target <= i;temp = 0,des = 0)
不要問我為什麼,我真的不知道=.=
可以算是瞎矇的XD
#include
int main(){
int i,j,k;
int target;
int temp = 0;
int des = 0;
char number[1000005];
for(i = 1;i <= 1000000;i++)
number[i] = '0';
//printf("Test");
for(i = 1;i < 1000000;i++){
for(target = i;target <= 1000000;temp = 0,des = 0){
des = target;
while(target >= 10){
temp += target % 10;
target /= 10;
//printf("temp:%d target:%d\n",temp,target);
}
//printf("End");
des += target;
if(des < 10)
target += target;
else{
target = des + temp;
}
//printf("%d %d\n",i,target);
if(target <= 1000000)
number[target] = '1';
else
break;
}
//i = 1000000;
//printf("%d\n",i);
}
/*for(i = 0;;i++)
printf("%s",number[i]);*/
//printf("Test");
for(i = 1;i <= 1000000;i++){
if(number[i] == '0')
printf("%d\n",i);
}
return 0;
}
我的程式跑不出while,但把次數改小就可以,/跟%調換的話也可以,但現在也跑不出來,懇請各位大神幫忙!!
你的第12行 for(target = i;target <= 1000000;temp = 0,des = 0)
其實我看不太懂你的程式碼,不過我猜測你的target應該是跟著i跑的,所以你的target大小不應該每次都讓他跑到1000000。(我改動一個地方就AC了)
不好意思,小弟想了很久還是不太懂target跑到哪裡要停,如果不把target跑1000000有些數字會漏檢查到吧,請大神幫幫忙。
我改這樣
for(target = i;target <= i;temp = 0,des = 0)
不要問我為什麼,我真的不知道=.=
可以算是瞎矇的XD
喔~~ okok 原來是target的部分阿~~ 雖然不知道為什麼原本的不行,但我能理解改動後的原理,真的是非常謝謝大大的幫忙!!!